Javascript 使用php和jquery提交AJAX表单

Javascript 使用php和jquery提交AJAX表单,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我已经看了这里所有我能找到的东西,我只是不明白为什么我不能完善这段代码。我试图做的是允许用户删除他们在我的网站上发布的内容,而无需进行页面刷新。表单将被传递到一个php文件,该文件将修改我的MySQL数据库。我是ajax新手,也只是在很短的一段时间内搞乱了PHP 表格: <form class='status_feedback' id='delete_status' onsubmit='delete_status()' action=''> <input type='hidde

我已经看了这里所有我能找到的东西,我只是不明白为什么我不能完善这段代码。我试图做的是允许用户删除他们在我的网站上发布的内容,而无需进行页面刷新。表单将被传递到一个php文件,该文件将修改我的MySQL数据库。我是ajax新手,也只是在很短的一段时间内搞乱了PHP

表格:

<form class='status_feedback' id='delete_status' onsubmit='delete_status()' action=''>
<input type='hidden' name='status_id' id='status_id' value='$status_id'/>
<input type='submit' value='X'/>
</form>
   <?php
        header("Access-Control-Allow-Origin: *");
        header('Access-Control-Allow-Methods: GET, POST'); 
        header('Content-type: application/json');

        $con=mysql_connect("localhost","USER","PASSWORD","DB");
      // Check connection
     if (mysql_connect_errno())
           {
            echo "Failed to connect to MySQL: " . mysql_connect_error();
           }

           $status_id = $_GET['status_id'];

           $result = mysql_query("UPDATE status SET visibility = 'hidden'
                     WHERE id = '$status_id'");

           if(! $result )
                 {
                    $data[]=array('response'=>"Unable to insert!"); 
                 }
           else

                 {

                 $data[]=array('response'=>"Data successfully inserted into the database!");

                  }

          $json_encode = json_encode($data);

          print("$json_encode");

   ?>
删除_status.php

<?php
$con=mysqli_connect("localhost","USER","PASSWORD","DB");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$status_id = $_POST['status_id'];
mysqli_query($con,"UPDATE status SET visibility = 'hidden' WHERE id = $status_id");



?>

您没有取消表单提交

onsubmit='delete_status()'
需要

onsubmit='return delete_status()'

数据:
status\u id
,看起来是错误的,除非您在其他地方定义了一个变量

稍微更改一下HTML、Ajax和php

HTML

Add this code:

      <body>

         <form class='status_feedback' id='delete_status' >
          <input type='hidden' name='status_id' id='status_id' value='$status_id'/>
          <input type='button' id='x_submit' value='X' />
         </form>

        <script>
           $('#x_submit').on("click",function(){

            var status_id= $('#status_id').val();

            //Delete the alert message if you want.
            alert("Check your status id :"+status_id);

               $.ajax({  
                      type: "GET",  
                      url: "/scripts/home/php/delete_status.php?",  
                      data: {status_id:status_id}, 
                      dataType:'JSON',
                      success: function(json) {  
                             //display message back to user here 
                              alert(json[0].response); 
                           }  
                     }); 

          });
        </script>
添加此代码:
$('x#u submit')。在(“单击”,函数()上){
var status_id=$('#status_id').val();
//如果需要,请删除警报消息。
警报(“检查您的状态id:+状态id”);
$.ajax({
键入:“获取”,
url:“/scripts/home/php/delete_status.php?”,
数据:{status\u id:status\u id},
数据类型:'JSON',
成功:函数(json){
//在此处将消息显示回用户
警报(json[0]。响应);
}  
}); 
});

PHP:

<form class='status_feedback' id='delete_status' onsubmit='delete_status()' action=''>
<input type='hidden' name='status_id' id='status_id' value='$status_id'/>
<input type='submit' value='X'/>
</form>
   <?php
        header("Access-Control-Allow-Origin: *");
        header('Access-Control-Allow-Methods: GET, POST'); 
        header('Content-type: application/json');

        $con=mysql_connect("localhost","USER","PASSWORD","DB");
      // Check connection
     if (mysql_connect_errno())
           {
            echo "Failed to connect to MySQL: " . mysql_connect_error();
           }

           $status_id = $_GET['status_id'];

           $result = mysql_query("UPDATE status SET visibility = 'hidden'
                     WHERE id = '$status_id'");

           if(! $result )
                 {
                    $data[]=array('response'=>"Unable to insert!"); 
                 }
           else

                 {

                 $data[]=array('response'=>"Data successfully inserted into the database!");

                  }

          $json_encode = json_encode($data);

          print("$json_encode");

   ?>


希望它能起作用。

我补充了这一点,但这并没有改变它。是否该表单实际上是从php文件中回显的?谢谢。我理解你对status\u id的意思。如果我希望发布的值是$status\u id中传递的值,那么数据应该是什么?谢谢。
data:{“name”:“value”}
谢谢您的帮助。当我回到我的项目时,我也会尝试这个方法。这看起来很容易实现。我今晚在做我的项目时会试试看。我知道这不是问题所在,但有没有什么地方可以让我了解JSON。我真的很想在实现之前知道代码的作用。只是为了成为一名优秀的程序员。非常感谢。