以下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的最佳方法吗?
我还有什么要补充的吗?
答案 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));