我有两个函数可以将不同的数据集提交到同一页面。一个功能正常,但另一个功能不发送帖子数据。这是代码:
function sortManufacturer() {
showLoading();
var orderList = '';
orderedNodes = document.getElementById("sortable_list").getElementsByTagName("li");
for (var i=0;i < orderedNodes.length;i++) {
orderList += orderedNodes[i].getAttribute('recordid') + ',';
}
$.post( 'save_sort_order.php', {type:'manufacturer', order: orderList},
function() {
hideLoading();
$( ".saved" ).dialog( "open" );
}
);}
function editManufacturer() {
showLoading();
var fields = $("form#edit_manufacturer").serializeArray();
$.post( 'save_sort_order.php', {manActive: fields},
function(data) {
hideLoading();
$( ".saved" ).dialog( "open" );
}
);}
这也不起作用,没有警报说成功,没有警告抛出错误。只需重新加载页面。:
function editManufacturer() {
$.ajax({
type: "POST",
url: "save_sort_order.php",
data: "hey",
success: function(){
alert("success");
},
error: function(request, status, error) {
var result = JSON.parse(request.responseText);
alert(result.message);
}
});
}
Net面板下的Firebug中没有发送任何帖子数据。第一个功能正常,第二个功能没有被发送。如果我发出警报(“之后”);在函数结束前的$ .post之后,它工作正常。
答案 0 :(得分:1)
我首先向error handler
添加$.post
,看看它返回的消息。
另请查看firebug net panel
以查看请求和响应
http://getfirebug.com/wiki/index.php/Net_Panel
修改的
参考帖子: - jQuery AJAX error handling
更改你的ajax语法,了解它的赠送方式。它更具可读性。
还用
替换错误处理程序error: function(request, status, error) {
var result = JSON.parse(request.responseText);
alert(result.message);
});
答案 1 :(得分:0)
serializeArray()
返回的名称/值对数组,您将其另外包含到manActive
字段中。只需按原样传递fields
即可。
答案 2 :(得分:0)
我会在每一行的对象上设置警报。这有点乏味但通常有效。如果你使用的对象可能是null或者是错误的数据类型而jQuery期望它,那么它将无声地失败。确保getElementsById工作,orderList是预期的,等等。它也可能在php中失败。