ajax返回php / javascript代码

时间:2010-09-27 04:38:19

标签: php javascript ajax

我正在玩AJAX。

如果我这样做

echo "helllo"

在PHP文件中它可以正常工作。

但是,如果我做了类似

的事情
echo "<script language=Javascript> alert('hi');</script>";

在PHP文件中,alert()没有出现。

任何人都知道我做错了什么?

示例:

在我的html文件中我有这个

<div id='something'> </div>

我希望将php文件中的响应文本放在上面:

if (req.status==200) {
     document.getElementById('something').innerHTML=req.responseText;
}

如果我改为:

if (req.status==200) {
     document.getElementById('something').innerHTML="<?php echo 'hi';?>";
}

它工作正常,响应文本将是---&gt;喜
但如果我在我的php文件中echo "\"<?php echo 'hi';?>\"";, 响应文本将是“”

我希望我能解释清楚

3 个答案:

答案 0 :(得分:1)

使用$.load(),将对该脚本进行评估。

$("#something").load("request.php");

也许jQuery也使用了eval(),因此它更安全,但只要load()只能在同一个域上运行,你应该控制将要评估的东西。

然而,它更容易使用,因为你不必自己解析Fragment for script's:)

答案 1 :(得分:0)

另一种方法:使用eval

var result = ajaxResponseText;// "alert('hi')"; in your case
eval(result);

答案 2 :(得分:0)

您必须使用返回的数据创建脚本标记;

var script = document.createElement('script');
stript.innerHTML = req.responseText;
document.getElementsByTagName('head')[0].appendChild(script);