我無法使用.ajax方法通過「POST」請求發送數據。 該腳本顯示來自數據庫的現有數據,然後通過 輸入附加數據1)首先刪除與該id相關的現有行(通過GET請求發送)和2)插入新行,如通過JSON發送的數據所反映的那樣。通過.ajax發送json數據作爲POST請求調用
下面是我的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'])
}
基本上,場到MySQL的foreach語句插入多排,其中$ loc_id仍然是所有的人都一樣。 ($ loc_id是外鍵)。 我無法將發佈數據導入到PHP腳本中。我確實得到了顯示json數據的警報,但不知何故它不被腳本解釋。該腳本能夠響應通過URL發送的GET變量。我能夠刪除響應獲取請求的mysql查詢,但以某種方式,我從POST數據中獲取作爲json發送的空數組。
您是否嘗試過使用'console.log(data_1_1);'在AJAX調用之前? –
console.log(data_1_1)中什麼也沒有顯示; – deepseas
'var data_1_1 = ko.toJSON(self.collab);'不起作用。看看它,然後回到我們身邊,告訴我們你徹底研究的結果。在問這裏之前,請閱讀[** Stack Overflow Question Checklist **](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。 –