Javascript 将数据从jQueryAjax传递到PHP,并将这些值保存到数据库中
我想使用Ajax将JS变量发送到PHP页面,以便将这些变量保存在数据库中。然而,它并没有像我预期的那样工作。 我的JS代码:Javascript 将数据从jQueryAjax传递到PHP,并将这些值保存到数据库中,javascript,php,Javascript,Php,我想使用Ajax将JS变量发送到PHP页面,以便将这些变量保存在数据库中。然而,它并没有像我预期的那样工作。 我的JS代码: var a= payment; var b= count_days; var c= <?php echo $teacher_id; ?>; var jsonString1 = JSON.stringify(a); var jsonString2= JSON.stringify(b); var jsonString3= JSON.stringify(c);
var a= payment;
var b= count_days;
var c= <?php echo $teacher_id; ?>;
var jsonString1 = JSON.stringify(a);
var jsonString2= JSON.stringify(b);
var jsonString3= JSON.stringify(c);
$.ajax({
type: "POST",
url: "student_searching_availibility.php",
data: {
data1 : jsonString1,
data2:jsonString2,
data3:jsonString3
},
cache: false,
success: function() {
alert('success');
}
});
我在这里搜索了几乎所有这样的查询,但仍然无法解决问题。JSON是javascrip对象表示法,您不能使用JSON。字符串化变量,它必须是对象。试试这个
var data = {}; //defines that data is a javascript object
//assign your values to there respective indexes
data['a'] = payment;
data['b'] = count_days;
data['c'] = <?php echo $teahcer_id; ?>
//since data is now a object you can json.stringify it
var jsonData = JSON.stringify(data);
//make ajax request with json data
$.ajax({
type: "POST",
url: "student_searching_availibility.php",
data: { data:jsonData },
cache: false,
success: function()
{
alert('success');
}
});
当您在sql$data1、$data2中插入对象时,实际上您正在尝试将对象存储到表中,这里mysqli_查询应该返回false,并且您的代码已经失效,因此您不会得到任何错误
因此,您的sql insert值取决于您的json解码($\u POST['data'],true或false)使用$data->a或$data[a],即
"INSERT INTO availibility_status_date(student_id,teacher_id,status) VALUES ('$data[a]','$data[b]','$data[c]')";
或
你得到的错误是什么?没有显示错误。但这些值也不会保存在数据库中。我甚至在Ajax响应中使用了error函数,但即使是error函数也不起作用。我不知道哪一方是错误客户端还是服务器端您是否尝试过转储您在
$\u POST
中获得的值?在student_searching_Availability.php端准备必要的代码,重新加载提交页面,打开浏览器>网络选项卡中的Inspect,查看收到的内容。是的,我现在尝试了,但在网络中没有收到任何服务器端响应。这是否意味着客户端出错,我的数据甚至没有发送到php页面?我不会进行字符串化,这样您就不需要在php中解码。
$data = json_decode($_POST['data']); //$data is now an object
$data->a; //your payment
$data->b; //your count_days
$data = json_decode($_POST['data'],true); //$data is now an associative array
$data[a]; //your payment
$data[c]; //your count_days
"INSERT INTO availibility_status_date(student_id,teacher_id,status) VALUES ('$data[a]','$data[b]','$data[c]')";
"INSERT INTO availibility_status_date(student_id,teacher_id,status) VALUES ('$data->a','$data->b','$data->c')";