3

次の PHP 関数は JS を出力します。

function dothething( $data ){
    $res = "
        <div id=\"blah\">
            Here's some stuff, ". $data['name'] ."
        </div>";
    echo "$('#container').html('". $res ."');";
}

この関数は、jQuery の を介して呼び出さ$.ajax()dataType: 'script'ますecho。もちろん他にもありますが、私の質問はエンコーディングに関するものです。$res改行またはアポストロフィが含まれていると、ajax は失敗します。したがって、これを上に追加すると、今のechoところ機能しているようです:

$res = str_replace("\n", "\\n", addslashes($res));

これは、PHP変数をフォーマットし$resてajax用の有効なjavascriptを生成する最良の方法ですか?

そこに追加する必要があるものは他にありますか?

4

2 に答える 2

3

あなたの場合、私はjson_encode()他のものよりも使用します:

echo "$('#container').html(" . json_encode($res) . ");";

文字列値に適用すると、二重引用符で自動的にカプセル化され、解析エラーの原因となる内部のすべてがエスケープされます。

于 2013-01-21T06:08:32.700 に答える
0

これを試して、

if(count($result)>0) {
    $status = 0;
} else {
    $status = 1;
}   

$json['status'] = $status;
$json['result'] = $output;
print(json_encode($json));
于 2013-01-21T06:23:33.917 に答える