javascript - 使用 php 和 jquery 进行 AJAX 表单提交

标签 javascript php jquery ajax forms

我已经查看了这里我能找到的所有内容,但我就是不明白为什么我不能完善这段代码。我想做的是允许用户删除他们在我的网站上发布的内容,而无需刷新页面。该表单将被传递到一个 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>

delete_status()

function delete_status(){
$.ajax({  
type: "POST",  
url: "/scripts/home/php/delete_status.php/",  
data: status_id,  
success: function() {  
//display message back to user here  
}  
});  
return false;
}

delete_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");



?>

此时,当我调用 delete_status() 函数时,我的页面会刷新并添加 ?status_id=194 (当我点击状态 #194 时) )到最后或我的网址。

任何帮助都会很棒。我已经研究了好几天了。

最佳答案

稍微改变一下你的 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>

PHP:

   <?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");

   ?>

希望它能发挥作用。

关于javascript - 使用 php 和 jquery 进行 AJAX 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212632/

相关文章:

Jquery 数据表和 Google BOT

javascript - 在html文件中显示存储在MongoDb中的图像

php - 数据质量和验证所需的建议

php - 选择多个不起作用

php - PHP 中有简单的 usort 吗?

javascript - 选择你自己的冒险作业

javascript - 在 reactjs 应用程序中使用 dom-to-image 模块是否正确?

javascript - 调整下拉菜单,使顶层保持突出显示

javascript - 通过 PHP 调用外部 javascript 函数时遇到问题

javascript - 根据其他元素的值隐藏元素