1
我有一个使用JQueryUI的可排序列表,并使用JQuery Each函数将AJAX请求保存到基本PHP文件。这些请求似乎没有问题(Firebug控制台),但并不是每个人都被PHP文件保存,更糟糕的是它似乎并不一致,有些id更可能失败,但这似乎与他们的位置有关在列表中!这真的很奇怪,有什么想法?多个AJAX请求给出不一致的数据库更新
我试过GET/POST,sync/async,没有什么区别。
的Javascript
function SaveChanges() {
priority = 0;
$("#p_menu li").each(function() {
if($(this).attr("class") != "range") {
$.ajax({"url": "lib/product-menu-save.php", "data": "pm_id="+this.id+"&priority="+priority, "type": "GET"});
priority++;
}
});
}
PHP文件
<?php
require_once '../includes/adminsession.php';
require_once '../lib/mysql.php';
$pm_id = $_GET['pm_id'];
$pm_priority = str_pad($_GET['priority'], 4, '0', STR_PAD_LEFT);
$save_stmt = $db->prepare("UPDATE products SET priority = ? WHERE id = ?");
$save_stmt->bind_param('si', $pm_priority, $pm_id);
if(!$save_stmt->execute()) echo $save_stmt->error; else echo 'SUCCESS';
的数据看起来很好进入的AJAX请求和成功返回为每个请求。如果相关的话,大约有60个项目。
而不是做60个AJAX请求,为什么不创建一个列表并提交一个请求? – 2012-02-23 11:02:33
作为JSON字符串?为什么它不能按60个请求工作?或者这只是一个建议。性能不是问题,但改变方法可能会使它工作。我难住这一个! – MattP 2012-02-23 11:37:53
JSON,两个逗号分隔的参数(*一个用于ID,一个用于优先级*),任何您认为可以最小化客户端 - 服务器通信的方式。 – 2012-02-23 11:40:30