通过.ajax调用发送json数据作为POST请求

sending json data as POST request via .ajax call

本文关键字:POST 请求 数据 json ajax 调用 通过      更新时间:2023-09-26

我无法使用.ajax方法通过"POST"请求发送数据。此脚本显示数据库中的现有数据,然后通过1) 首先删除与该id相关的现有行(通过GET请求发送),2)插入通过JSON发送的数据所反映的新行。

下面是我的Ajax呼叫

        <script src="/jquery-1.10.2.min.js"></script>
        <script src="/knockout-2.3.0.js"></script>
            var collabModel = function(collab) {
                var self = this;
                self.collab= ko.observableArray(collab);
             //To add empty row into the table
                self.addcollab = function() {
                    self.collab.push({
                      Name: "",
                       Lastname: ""
                    });
                };


 self.save = function(form) {
 var loc_id=<?php echo $loc;?>;
   var data_1_1=ko.toJSON(self.collab);
                      $.ajax({
                            type:'POST',
                            url:'update_collab_info.php?loc_id='+loc_id,
                           // dataType: 'json',
                            data:data_1_1,
                            processData: false, 
                            timeout:2000,
                                success:function(collab){
                                    alert("This looks like"+data_1_1);
                                  location.href="www/"
                                }
                          });
             };
            };
        var data_from_database=<?php echo json_encode($result);?>; //This is to display any existing rows of information if present from the database
        var viewModel = new collabModel(data_from_database);
        ko.applyBindings(viewModel);
                ===========================PHP SCRIPT(update_collab_info.php)==================
                    <?php
                $data_1=$_POST['data_1_1'];
                $loc_id=$_GET['loc_id'];
                $data_2=json_decode(stripslashes($data_1));
                foreach($data_2 as $row){
                //MYSQL query PDO PREPARE statement 
    //insert ($loc_id, $row['name'],$row['lastname'])
                 }

基本上,foreach语句在mysql中插入多行字段,其中$loc_id对所有字段保持不变。($loc_id是外键)。我无法将发布的数据输入到PHP脚本中。我确实收到了显示json数据的警报,但不知何故,脚本没有对其进行解释。脚本能够响应通过URL发送的GET变量。我可以删除响应get请求的mysql查询,但不知何故,我从以json形式发送的POST数据中获得了空数组。

如果您想以$_POST["data_1_1"]的形式访问数据,则必须将其作为post-var而不是请求体发送。

$.ajax({
    type: 'POST',
    url: 'update_collab_info.php?loc_id=' + loc_id,
    data: { data_1_1:data_1_1 },
    timeout: 2000,
    success: function (collab) {
        alert("This looks like" + data_1_1);
        location.href = "www/"
    }
});