我正在尝试从 HTML 选择标签向 MySQL 中插入一个值:
<select name="venuesend">
<option value="37">LATINO SPORTS CLUB</option>
<option value="38">RED HOOK VISION CENTER</option>
<option value="39">ANTHOLOGY FILM ARCHIVES</option>
<option value="40">HUMMINGBIRD STUDIOS</option>
<option value="41">THE PRODUCERS CLUB</option>
</select>
因此,如果选择了 LATINO SPORTS CLUB
,则应将 37
的值发送到 MySQL。不过,目前,发布到 MySQL 的值一直是 3
。所以,我猜这是出于某种原因被截断了。
这是我的 PHP 和 HTML 表单:
<?php
//if "submit" is clicked
if(isset($_POST['upload2'])) {
//check if image files were uploaded
foreach($_FILES['images']['error'] as $err){
switch ($err){
case UPLOAD_ERR_NO_FILE:
echo 'No file sent.';
exit;
}
}
//iterate through each image file uploaded
for($x=0; $x<count($_FILES['images']['tmp_name']); $x++){
//THIS IS WHERE VENUESEND IS POSTED
$screeningID2 = $_POST['venuesend'][$x];
$file_name = $_FILES['images']['name'][$x];
$file_tmp = $_FILES['images']['tmp_name'][$x];
....
//SQL statement and Posting
$sql2 = "INSERT INTO screeningImages (screeningId, imageURL) VALUES ('$screeningID2', '$file_name')";
mysqli_query($db, $sql2);
} else{
echo "Only images can be stored.";
}
}
}
?>
//HTML Form
<form method="post" action="screenings-admin.php" enctype="multipart/form-data">
//SELECT
<select name="venuesend">
<option value="37">LATINO SPORTS CLUB</option>
<option value="38">RED HOOK VISION CENTER</option>
<option value="39">ANTHOLOGY FILM ARCHIVES</option>
<option value="40">HUMMINGBIRD STUDIOS</option>
<option value="41">THE PRODUCERS CLUB</option>
</select>
//Images Upload
<input type="file" id="imageUpload" name="images[]" multiple="" onchange="javascript:updateList()"/>
//submit button
<input type="submit" name="upload2" value="Upload" id="upload2">
</form>
最佳答案
问题是您在调用 37
时试图访问字符串数组 ( $screeningID2 = $_POST['venuesend'][$x];
) .
<select>
POST 使用 $_POST[id]
传递选定的值 ;你实际上不需要引用 $x
根本不需要,只需要:
$screeningID2 = $_POST['venuesend'];
你得到 3
通过因为$_POST['venuesend']
已经是字符串 37
,您实际上是在获取字符串的第一个字符。
希望对您有所帮助! :)
关于php - MySQL:从选择标记插入值被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44297865/