0

我有以下代码:

 $.post('get_as_12', {data:selectedObj.value},function(result) {
 alert(result[0]) ;

      if(result[0] > 0) {
          $('#h12_1').attr('checked','checked');
          alert('12-1');
       } else {
          $('#h12_1').removeAttr('checked');
          alert('12-2');
      }
 }); 

get_as_12 是一个 MySQL 查询。

alert(result[0]) ;当有数据库结果时,警报会正确触发。但是,如果没有结果并且返回的值是NULL我如何让警报仍然触发。不仅如此,我如何让 else 语句触发: $('#h12_1').removeAttr('checked');

提前致谢。

更新

 $.post('get_as_12', {data:selectedObj.value},function(result) {
 alert(result[0]) ;

      if(result[0].length > 0) {
          $('#h12_1').attr('checked','checked');
       } else {
          $('#h12_1').removeAttr('checked');
      }
 }); 
4

3 回答 3

2

也许是这样的:

$.post('get_as_12', {data:selectedObj.value},function(result) {
    if(result != null && result[0] > 0) {
        $('#h12_1').attr('checked','checked');
        alert('12-1');
    } else {
        $('#h12_1').removeAttr('checked');
        alert('12-2');
    }
});

这增加了一个检查结果不是nullor undefined。如果您确定定义的结果将是一个包含至少一个元素的数组,那应该没问题。否则,您需要添加一个检查result.length > 0

于 2013-04-19T09:48:26.543 回答
1

我认为您正在寻找结果 [0] 的长度

if(result && result[0].length > 0) {.......

我假设 result[0] 包含一个包含 mysql 查询结果的数组。使用 length 属性,您可以检查结果集是否为空,因此如果您的查询不返回结果,它应该调用您的语句 else-statement。

于 2013-04-19T09:45:59.157 回答
0

I expect when the server returns null response it is not being handled correctly by $.post to process the request.

You can try using $.ajax instead, as this allows for better error handling and processing.

$.ajax({
    type: 'POST',
    url: 'get_as_12',
    data: {
        data:selectedObj.value
    },
    success: function(result){
        if(result != null && result[0] > 0) {
            $('#h12_1').attr('checked','checked');
            alert('12-1');
        } else {
            $('#h12_1').removeAttr('checked');
            alert('12-2');
        }
    },
    error: function(xhr, textStatus, error){
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
        // or use alert to send user a message
    }
});

The key things to note here are the success and error handlers. The error is triggered if the response is invalid or none is given by the server.

The code is untested; so changes may be required.

于 2013-04-19T16:06:00.930 回答