[英]Using jQuery AJAX to update table of mysql
我使用jQuery AJAX更新表格。 但是AJAX只適用於第一次,其他請求都消失了。
JavaScript的
function uploadItems(data, step, savetype) {
data.append('step', step); data.append('savetype', savetype);
data.append('new_store_id', store_id);
$.ajax({
url: "order_store_edit.php?store_id="+store_id,
type: "POST",
data: data,
contentType: false,
processData: false,
async: true
})
.done(function(data)
{
console.log(data);
})
.fail(function(xhr, text_status, errorThrown)
{
return false;
});
}
PHP
foreach ($set_item_arr as $i => $value) {
order_item_up($item[$i]['item_id'], $value);
echo $item[$i]['item_id'] . ' : ' . $value['disable'] . "\n";
}
MySQL的
function order_item_up($item_id, $set_arr)
{
if (! isset($item_id)) {
echo 'no id';
return;
}
global $db;
$sql = 'UPDATE tablename SET ';
foreach ($set_arr as $key => $val) {
$sql .= $key."='".$val."', ";
}
$sql = substr($sql, 0, -2);
$sql .= " WHERE item_id = '$item_id'";
return $db->execute($sql);
}
例如,我有二十個表單,然后將其中十個附加到一個FormData中,然后調用uploadItems。 因此它將發送兩次,但更新查詢僅在第一次使用。
沒有錯誤消息顯示在控制台上,在瀏覽器中也沒有。
此問題的可能原因是什么?
編輯:
有可能由表級鎖定引起嗎? 我的引擎是MyISAM。
編輯:編輯SQL查詢的結果
XHR finished loading:
983 : 1
984 : 1
985 : 1
986 : 1
987 : 1
988 : 1
989 : 1
990 : 1
991 : 1
992 : 1
XHR finished loading:
no id : 1
no id : 1
如前所述,第二個XHR無法更新數據庫。
我發現了問題...我應該使用item_id而不是數組的索引,因為更新數據庫后數組的大小會有所不同。
function order_item_up($item_id, $set_arr)
{
foreach ($set_arr as $key => $val)
{
$qry1="UPDATE tablename SET". $key."='".$val."' where $item_id='".$item_id."'";
$re=mysql_query($qry1)or die(mysql_error());
}
}
使用此更新部分的行數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.