1

data.announce を検証しようとしていますが、「Uncaught TypeError: Cannot read property 'announce' of null」というエラーが表示されます

だからここに私のコードがあります

php ファイル:

  $return = array("msg" => "You'll recive an email with instructions!");
  return json_encode($return);

jquery:

$("form[id='common-handler/register'] #submit").click(function(e) {
        e.preventDefault();
        if(locked == 1)
            return false;
        locked = 1;

        var _form = $(this).closest('form').attr('id');
        $.post("/"+_form, $(this).closest('form').serialize(), function(data) {
            if(!isEmpty(data.announce))
                $("#search_bar").html(data.msg).fadeIn("slow");
            else
                $("form[id='" + _form + "'] p.msg").text(data.msg);
        }, "json");
    });


function isEmpty(str) {
    return (!str || 0 === str.length);
}
4

4 に答える 4

0

これを試して:

return $return = json_encode( array( "announce" => array("msg" => "You'll recive an email with instructions!") ) );
于 2013-03-06T22:45:29.833 に答える
0

返す配列のキーの1つとして「アナウンス」はなく、「msg」のみです

あなたがしたい:

array("msg" => "You'll recive an email with instructions!", "announce"=>"My announcement");
于 2013-03-06T22:45:37.460 に答える
0

別の PHP ファイルのどこかに含めない限り、PHP ファイルにデータを返すことはできません。そのため、$.post()JSON 出力を介して動作する を取得するには、これが必要になります。

echo json_encode(array("msg" => "You'll recive an email with instructions!"));
exit(0);
于 2013-03-06T22:43:25.780 に答える
-1

変更してみてください:

if(!isEmpty(data.announce))

に:

if(null == data.announce)

于 2013-03-06T23:20:03.763 に答える