javascript在PHP中将值发送到$ _POST

时间:2016-03-30 05:36:10

标签: javascript php jquery html

我想要做的是使用确认框,如果用户单击“确定”,则从我的SQL数据库中删除一行。我有一个js函数,我用来发送值"删除"到这个相同文件的php函数:

<script>
    function myFunction() {
        if (confirm("Are you sure you want to delete?") == true) {
            document.getElementById("delete").name = "delete";
        }else{
            return false;
        }
    }
</script>

用户单击以删除图像的按钮是:

<button onclick="myFunction()">Delete Image</button>

我将值发送到PHP函数,如下所示:

<input type="hidden" name="" value="delete" id="delete">

这是我的PHP函数:

if(isset($_POST['delete'])){
    $img_path=$_POST['ipath'];
    $imgid=$_POST['imgid'];
    $link = mysqli_connect($host, $username, $password, $db);
    $delete = "DELETE FROM images_info
                WHERE Image_Id = $imgid";
    $result3 = mysqli_query($link, $delete);
    echo "Image Deleted : $imgid";
    mysqli_close($link);
}

我做错了什么?我相信它必须使用javascript

6 个答案:

答案 0 :(得分:2)

在你的html中,输入名称属性为空,

<input type="hidden" name="" value="delete" id="delete">

它应该像

<input type="hidden" name="delete" value="delete" id="delete">
在使用值'delete'提供name属性之前,不会设置

$ _ POST ['delete']

答案 1 :(得分:0)

像这样使用它。这是PhpFiddle

PHP代码

  <?php
     if(isset($_POST['delete']))
    {
        // PERFORM YOUR DELETE QUERY HERE
        print_r($_POST);
     }
   ?>

JAVA SCRIPT

      <script>
      function myFunction() {
      if (confirm("Are you sure you want to delete?") == true) {
         document.getElementById("delete").name = "delete";

       }else{
       return false;
       }
     }
   </script>

<强> HTML

     <form method="post" action="">
         <button onclick="myFunction()">Delete Image</button>
         <input type="hidden" name="" value="delete" id="delete">
     </form>

答案 2 :(得分:0)

请勿在{{1​​}}标记中使用onclick =“myFunction()”。相反,请确保:

<input>

答案 3 :(得分:0)

变量$_POST是从表单的<input>标记获取的关联数组。 $_POST中的键由输入标记的name属性定义,$_POST中的相应值由同一标记中的value属性定义。除非您使用像jQuery这样的AJAX库,否则$_POST中的数据不会来自JavaScript。如果要使用纯JavaScript控制此数据,则必须直接设置输入标记的属性。

您可以保留您正在使用的相同JavaScript代码,只需设置输入标记的value属性,而不是namedelete应始终为$_POST['delete']。然后在PHP代码中,您可以测试hdfs-site.xml的值,以确定用户是否真的想要删除。

答案 4 :(得分:0)

似乎没有人愿意回答你的问题。如果你想用纯粹的js做这件事,你可以去:

var url = 'YOUR URL POST DESTINATION HERE';
function myFunction(elem){
    var id = elem.target.id;
    var xmlHttp = new XMLHttpRequest();
    var params = 'delete=true&imgid=' + id;

    xmlHttp.open('POST', url, true);
    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlHttp.send(params);

}

您需要以编程方式在js中设置imgid。从您的页面执行myFunction(),如

<button onclick="myFunction(this)">Delete Image</button>

作为旁注,让用户发布到表单并修改数据库是一个非常糟糕的主意。任何人都可以发布帖子请求并删除您的数据库。但我决定让你怀疑并回答你的问题。

答案 5 :(得分:0)

对于所有这些混乱的家伙,很抱歉,实际问题是我在表单中有另一个表单。我不知道表单里面不能包含表单。删除了另一个表单,它可以正常工作