所以基本上我想要做的是获取所选的清单元素并将它们的“名称”发送到数据库。我也想对收音机做同样的事情。这是代码:
<?php
$user_files_directory = 'uploads/unused_images/'.$_SESSION['user_id'].'/';
if (file_exists($user_files_directory)) {
$dir_handle = @opendir($user_files_directory);
while ($file = readdir($dir_handle)) {
if($file == "." || $file == ".." || $file == "index.php" )
continue;
echo "
<div id=\"image_container\">
<div id=\"unused_images_selector\">
<img src=\"uploads/thumbs/unused_images/".$_SESSION['user_id']."/$file\" alt=\"Test\">
</div>
<div id=\"checkbox\">
<input type=\"checkbox\" name=\"$file\">
</div>
</div>
";
}
// Close
closedir($dir_handle);
} else {
echo "<p>
You have not uploaded any images.
</p>";
}
?>
此帖子存在:
$file = $_POST['file'];
以下是其余部分:
function create_new_page($page_name, $album_name, $file, $file1, $file2) {
$page_name = mysql_real_escape_string(htmlentities($page_name));
mysql_query("INSERT INTO `pages` VALUES ('', '$album_name', '".$_SESSION['user_id']."', UNIX_TIMESTAMP(), '$page_name', '$file2', '$file3', '$file')");
return mysql_insert_id();
}
除了收音机/清单之外的所有内容都有效,非常感谢任何帮助,我知道代码可能不是最好的,但那是因为我没有做太多的PHP,只是想要一些有效的代码,所以现在不要太担心关于这里和那里的问题。
EXTRA:$ file是放置在页面中的图像的名称(它是用户想要使用的图像的选择区域),所以我希望使用$ file它会创建MYSQL数据库中的映像名称,但它写入“array”。
答案 0 :(得分:0)
您误解了HTML表单的工作方式以及在PHP中提取它的方法。
您正在将name
属性设置为实际文件名( not “file”)并尝试提取名为file
的POST参数。执行此操作的方法是将复选框命名为file[]
(如在文件数组中),并将value
属性设置为文件名。您的PHP代码可能保持不变。
修改您的复选框代码,如下所示:
<div id=\"checkbox\">
<input type=\"checkbox\" name=\"file[]\" value=\"$file\" />
</div>
由于您已经拥有以下内容:
$file = $_POST['file'];
$file
将为您提供一系列文件名。然后,您可以根据需要处理该数据。
编辑:由于OP修改了问题。
您希望将多个图像名称存储到数据库中,因此您需要触发多个INSERT
语句。您可以循环访问$file
变量并构建查询。
使用以下几行:
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
foreach ($file as $filename) {
$query = $mysqli->prepare("INSERT INTO tblImages vcImageName VALUES (?)");
$query->bind_param("s", $filename);
$query->execute();
$query->bind_result($result);
$query->fetch();
$query->close();
}
$mysqli->close();