使用php为ajax编码javascript的最佳方法?

时间:2013-01-21 06:04:20

标签: php jquery ajax

以下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编辑的内容就像JS函数一样运行。当然还有更多内容,但我的问题与编码有关。 $res包含换行符或撇号时,ajax将失败。所以在echo之上加上这个似乎现在正在起作用:

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

这是格式化PHP变量$res以生成ajax的有效javascript的最佳方法吗?

我还有什么要补充的吗?

2 个答案:

答案 0 :(得分:3)

在你的情况下,我会使用json_encode()而不是其他任何东西:

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

当应用于字符串值时,它将使用双引号自动封装它并转义内部的任何内容,否则会导致解析错误。

答案 1 :(得分:0)

试试这个,

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

$json['status'] = $status;
$json['result'] = $output;
print(json_encode($json));