【问题标题】:How to have a js Function and form submit at the same time?如何让一个js函数和表单同时提交?
【发布时间】:2014-03-04 18:40:38
【问题描述】:

希望有人能看到我哪里出错了。在此照片上传页面上工作(仍然!)并且我一生都无法获得该页面以从服务器上的文件中删除照片并删除带有照片/文件信息的表格行。我的问题是,当我删除照片文件和表格数据时,页面会刷新,但仍然显示指向 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 中。如果我不接受任何建议。

【问题讨论】:

  • 注意:此页面上传多张图片,并在上传表单下方显示它们,并在需要时使用删除按钮将其删除。
  • 你可以编辑你的问题,你不需要发布 cmets 解释额外的东西
  • 你必须在查询前在顶部写上删除代码。

标签: javascript php forms function


【解决方案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函数了

【讨论】:

  • 谢谢!!!!我觉得自己是有史以来最大的白痴……浪费了几乎一整天的时间来让它工作!!!干杯,
猜你喜欢
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多