如何同时提交js功能和表单?

时间:2014-03-04 18:40:39

标签: javascript php forms function

希望有人能看到我出错的地方。在这个照片上传页面上工作(仍然!),并且在我的生活中无法获取页面,从服务器上的文件中删除照片,并删除包含照片/文件信息的表格行。我的问题是,当我删除照片文件和表格数据时,页面会刷新,但仍显示到NOW丢失文件的链接断开。第二次刷新修复了这一点,但这是不可取的。为了解决这个问题,我编写了一个删除实际img元素的js函数。但正如我所说,我不能让他们两个同时只在一个或另一个工作。我已经尝试使用表单“onsubmit”我尝试在我的js函数中添加.submit()函数,我目前正在使用带有onclick的HTML按钮来调用我的函数,但我还有一个“提交”按钮,我是原创的尝试使用他形式提交,但似乎没有任何工作。 这是我到目前为止所拥有的......

$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中。如果不对我提出任何建议。

1 个答案:

答案 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功能