我有以下代码:
$.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');
}
});
答案 0 :(得分: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');
}
});
这会添加一项结果不是null
或undefined
的检查。如果您确定定义的结果将是一个至少包含一个元素的数组,那应该没问题。否则,您需要添加result.length > 0
答案 1 :(得分:1)
我认为你正在寻找结果的长度[0]
if(result && result[0].length > 0) {.......
我假设result [0]包含一个包含mysql查询结果的数组。使用length属性,您可以检查结果集是否为空,因此如果查询未返回结果,则应调用语句else-statement。
答案 2 :(得分:0)
我希望当服务器返回null
响应时,$.post
无法正确处理它以处理请求。
您可以尝试使用$.ajax
,因为这样可以更好地处理和处理错误。
$.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
}
});
此处需要注意的关键事项是success
和error
处理程序。如果响应无效或服务器没有给出,则触发error
。
代码未经测试;因此可能需要进行更改。