Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从jQueryAjax传递到PHP,并将这些值保存到数据库中_Javascript_Php - Fatal编程技术网

Javascript 将数据从jQueryAjax传递到PHP,并将这些值保存到数据库中

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

我想使用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);

$.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')";