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'... 所以任何echoed 都像 JS 函数一样运行。当然还有更多,但我的问题与编码有关。当$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 回答