2011-10-31 20 views
2

请帮助我在这种奇怪的情况。 这是我第一次看到,其他{}在if(){}之后无效。 =)))

onClick="$.post('itemupdate.php', { itemname: 'test' }, function(data) { if(data.status == 'error'){alert('error')} else {alert('OK')} }, 'json');" 

警报'OK'从不出现。其他一切都是为了。

回答

1

刚做了一个叫ok的输出!

if (mysql_error()) { $return_arr["status"] = 'error'; } else { $return_arr["status"] = 'ok'; } echo json_encode($return_arr); 

现在事情奏效!

function(data) { if(data.status == 'error'){alert('error')} if(data.status == 'ok') {alert('OK')} } 
5

如果有jQuery.post的请求()返回一个错误代码,它会失败 默默的,除非剧本也被称为全球.ajaxError() 方法或。从jQuery 1.5开始,jQuery.post()返回的jqXHR对象 的.error()方法也可用于错误处理。

http://api.jquery.com/jQuery.post/

另外:如果你想访问请求状态,回调函数获取3个参数: 数据,textStatus,jqXHR。如果你返回蹩脚的JSON,你的数据为空或未定义,并且data.status会失败。

这是正确的代码。另外,我建议你永远不要把你的代码放在html属性中!

$.post('itemupdate.php', 
    { itemname: 'test' }, 
    function(data, status) { 
     if (status == 'error') { 
      alert('error'); 
     } 
     else { 
      alert('OK'); 
     } 
    }, 
    'json' 
); 
+3

换句话说,if/else语句没有问题,问题在于成功回调仅在...上调用...好...成功... – nnnnnn

+0

正确。阅读手册也是正确的做法;) –

+0

实际上在我的情况下 - 当数据(脚本输出)不为空时调用回调。 –

相关问题