0

サーバーからデータを取得して画面に表示しています。私の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);
?>
4

3 に答える 3

1

PHPコードで値を空の文字列に設定することをお勧めします。JavaScriptのifステートメントは、誤った条件をチェックします。

<?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);
?>
于 2012-10-09T17:00:22.777 に答える
1

フォームを変更するためだけに、ORたとえばを使用することもできますdd>' + (data.title || '') + '</dd...

titleisundefinedまたは。の場合null、空の文字列が代わりに使用されます。(condition)?r1:r2これはフォームよりも読みやすいように見えます。しかし、doublesharpがコメントで指摘しているように、どちらも信頼できません。

于 2012-10-09T16:52:06.033 に答える
0

コメントとしてベストアンサーを提供します:

また、クエリから ""(またはその他)の誤った値を設定して、実際にnullが返されないようにすることもできます。

データはデータベースから取得されているため、次のようにします。

SELECT COALESCE(title,'') AS title, bla, bla, bla
于 2012-10-16T15:59:33.133 に答える