$photoQuery= "SELECT * FROM photo_index WHERE listing_ID='$listingID'";
$result = mysqli_query($dbcon, $photoQuery);
$img_count =0;
while ($photo_data = mysqli_fetch_array($result)){
$img_ID = "pic" . $img_count;
$form_ID = "form" . $img_count;
echo "<form name='$form_ID' id='$form_ID' action=listing_photos.php method=post > ";
echo "<input type=hidden name=photoDir value='$photo_data[Photo_Dir]' />";
echo "<input type=submit name=photoDel id=submit_but value=Delete />";
echo "</form>";
echo "<button type=button id=del_button onclick=delPhoto('$img_ID', '$form_ID')>Delete!!</button>";
echo "<img src='$photo_data[Photo_Dir]' height=100px width=100px id='$img_ID'>";
$img_count = $img_count +1;
}
if (isset($_POST['photoDel'])){
$fh = fopen($_POST['photoDir'], 'a');
fclose($fh);
unlink($_POST['photoDir']);
$photoDel= "DELETE FROM photo_index WHERE Photo_Dir='$_POST[photoDir]'";
$result = mysqli_query($dbcon, $photoDel) or die(mysql_error());
echo "Photo Removed";
}
这是我用来删除img元素的JS函数......
function delPhoto(photoElem) {
var a = document.getElementById('photo_container');
var b = document.getElementById(photoElem);
a.removeChild(b);
return true;
}
对不起,我知道这有点乱(还有SQL注入问题),但就像我说我已经尝试了我能想到的每个订单中的所有内容。删除文件和表行独立工作,js函数自行工作,所以我知道没有问题,只能让它们同时运行。我已经开始尝试使用JQuery,但我对此非常新,所以如果可能的话,我希望将它保存在php,js中。如果不对我提出任何建议。
答案 0 :(得分:1)
将此移至顶部,您在从数据库中选择图像后处理删除,您只需先删除,然后从数据库中选择,这样您刚刚删除的图像将不再显示
if (isset($_POST['photoDel'])){
$fh = fopen($_POST['photoDir'], 'a');
fclose($fh);
unlink($_POST['photoDir']);
$photoDel= "DELETE FROM photo_index WHERE Photo_Dir='$_POST[photoDir]'";
$result = mysqli_query($dbcon, $photoDel) or die(mysql_error());
echo "Photo Removed";
}
您不再需要javascript功能