我想将图像插入到下拉菜单中选定的类别中。不想在 html 中对菜单进行硬编码,以便 phpmyadmin 可以将其动态更新到菜单。目前,所有图像都插入 Greeting_Cards 表中,因为它目前是占位符。
我尝试将其保存为变量: $selected = $_POST['tables'];
并将其传递为 $selected
而不是greeting_cards,但这会抛出异常返回未定义索引的通知,并且根本不添加到任何表。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>upload</title>
</head>
<body>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="upload" />
</form>
<?php
require_once('/var/db_file.php');
//To do after submit button
if(isset($_POST['submit']))
{
mysql_connect("localhost","root", $pass);
mysql_select_db("images");
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
/* Drop down menu */
$dbname = "images";
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);
$tableNames=array();
while($row = mysql_fetch_row($result)){
$tableNames[] = $row[0];
}
echo '<select name="tables" id="tables">';
foreach($tableNames as $name){
echo '<option value="' . $name . '">' . $name . '</option>';
}
echo '</select>';
/* Drop down menu end */
$selected = $_POST['tables'];
echo '<br>';
if(substr($imageType,0,5) == "image"){
mysql_query("INSERT INTO `$selected` VALUES('','$imageName','$imageData')");
echo "Image Uploaded!";
}
else{
echo "Has to be an image!";
}
}
?>
</body>
</html>
编辑 1:添加 $selected 变量,而不是 Greeting_Cards 修复:移动表单的结束标记以包含 php 代码。 感谢您的帮助!
最佳答案
在此代码片段中,$_POST['tables']
未获取分配的值,因为表单没有名为 tables 的选择下拉列表。
尽管下拉菜单正在回显,但它位于 <form>
之外,因此未提交。
关于php - 在 php 的下拉菜单中保存所选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366802/