我有一个脚本,基本上可以检查查询是否有结果:

$.post('<?php echo site_url('xxx/yyy'); ?>',{data:no},function(result){
        if(!result){
            alert("No Data");
        }
        else{
            alert("Data retrieved");
        }
});


为什么当我得到空的JSON数组时,我的IF警报Data retrieved。我尝试对不同的数据执行alert(result)(结果为空且结果为true的数据),但是两个数据都在警告Data retrieved

这是我的模型:

$this->db->select('*',FALSE);
    $this->db->from('t_penomoran tp');
    $this->db->join('t_penomoran_detail t_pd', 'tp.nomor = t_pd.nomor');

    $this->db->where('tp.nomor',$nomor);

    $query = $this->db->get();
    return $query->result_array();


注意:
由于某些原因,当我对没有值的数据进行alert(result.length)时,结果为2。但是当我对没有值的数据执行alert(result)时,结果为[]

最佳答案

空数组是一个truthy值,意味着在您的if语句中,它的值将为true,这就是为什么您看到alert()的原因。要解决此问题,请使用length属性:

if(!result.length) alert('no data')

关于javascript - 为什么我的脚本忽略空数组结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46902415/

10-16 08:27
查看更多