我无法使用.ajax方法通过“POST”请求发送数据。 此脚本显示数据库中的现有数据,然后输入其他数据 1)首先删除与该id相关的现有行(通过GET请求发送)和2)INSERT新行,如通过JSON发送的数据所反映的。
以下是我的Ajax Call
<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语句insert将字段行乘以mysql,其中$ loc_id对于所有字段保持相同。 ($ loc_id是外键)。 我无法将后期数据导入PHP脚本。我确实得到了显示json数据的警报,但不知何故它不是由脚本解释的。该脚本能够响应通过URL发送的GET变量。我能够删除响应get请求的mysql查询但不知何故我从POST数据中获取空数组作为json发送。
答案 0 :(得分:1)
如果您想以$_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/"
}
});