Javascript 使用php和jquery提交AJAX表单
我已经看了这里所有我能找到的东西,我只是不明白为什么我不能完善这段代码。我试图做的是允许用户删除他们在我的网站上发布的内容,而无需进行页面刷新。表单将被传递到一个php文件,该文件将修改我的MySQL数据库。我是ajax新手,也只是在很短的一段时间内搞乱了PHP 表格: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
<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。我真的很想在实现之前知道代码的作用。只是为了成为一名优秀的程序员。非常感谢。