显示NULL为无文本

时间:2012-10-09 16:46:43

标签: php javascript jquery

我从服务器获取一些数据并显示在屏幕上。我的JavaScript如下所示,PHP服务器代码如下。我的问题是数据库返回null(例如,标题)。 PHP将其识别为NULL,而JavaScript又将其识别为null。然后我在屏幕上显示它,它不显示为null,但显示为“null”。我不希望显示文本“null”,但不显示任何内容。

作为解决方法,我可以将data.title替换为((data.title)?data.title:'')。这是处理它的最佳方式吗?

$.get('server.php',{id:1855},
    function (data)
    {
        //data={"id":"1855","firstname":"Pat","lastname":"Prentice","title":null}
        $('#my_id').html('<dl><dt>Name:</dt><dd>'+data.firstname+' '+data.lastname+'</dd>'+'<dt>Title:</dt><dd>'+data.title+'</dd>');
    },'json');

server.php返回以下内容:

<?php
$sql_output=array('id'=> 1855, 'firstname'=>'Pat','lastname'=>Prentice,'title'=>NULL);
echo json_encode($array);
?>

3 个答案:

答案 0 :(得分:1)

只需更改表单,您也可以使用OR,例如dd>' + (data.title || '') + '</dd...

如果titleundefinednull,则会使用空字符串。这看起来比(condition)?r1:r2表格更容易阅读。但两者都是不可靠的,因为doublesharp在评论中指出。

答案 1 :(得分:1)

我建议将值设置为PHP代码中的空字符串。如果JavaScript中的语句将检查任何错误情况。

<?php
$sql_output=array('id'=> 1855, 'firstname'=>'Pat','lastname'=>Prentice,'title'=>NULL);
foreach ($sql_output as &$row){ // pass by reference
    foreach($row as $key=>$value){
        if ($value==null) $row[$key] = "";
    }
}
echo json_encode($sql_output);
?>

答案 2 :(得分:0)

作为评论会提供最佳答案:

  

您还可以设置“”(或其他任何内容)的默认值   查询,以便它永远不会实际返回null

由于数据是从数据库中提取的,只需执行以下操作:

SELECT COALESCE(title,'') AS title, bla, bla, bla