PHP 中的 JS 警报作为 AJAX 应用程序的一部分

发布于 2024-09-12 22:41:19 字数 396 浏览 9 评论 0原文

我有一个 PHP 文件,正在通过 ajax 调用该文件来填充 DIV。一切都工作得很好,除了我一生都无法从 PHP 中弹出一个 JS 警报框。

这是我用来测试的内容(这是在 PHP 的末尾添加的,我也在开头、中间等处尝试过):

 echo "does this show up?";
 echo "<script language='javascript'>alert('thanks!');</script>";  

“这个显示出来了吗?”是回显的,我可以在 codeinspector 中看到 JS,但没有警报框。如果我将该代码放入自己的 PHP 文件中(这样它就不再作为较大的 ajax 应用程序的一部分嵌入),它就可以正常工作。

有什么建议吗?

I've got a PHP file that is being called to fill in a DIV via ajax. Everything works fine and dandy except I can't for the life of me get a JS alert box to pop up from the PHP.

Here is what I'm using to test (this is being tacked on toward the end of the PHP, I've also tried it toward the beginning, in the middle, etc):

 echo "does this show up?";
 echo "<script language='javascript'>alert('thanks!');</script>";  

"does this show up?" is echoed and I can see the JS in codeinspector but no alert box. If I take that code and throw it in its own PHP file (so it is no longer embedded as part of a larger ajax app) it works just fine.

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷迭香的记忆 2024-09-19 22:41:19

通过 AJAX 发回 script 块是错误的做法。相反,您应该返回一个值(可能是使用 json_encode 的 JSON然后使用 javascript JSON 库 进行解码,然后调用来自您的脚本的警报。

例如,像这样的东西(未经测试,但你明白了):

PHP:

echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test'));

Javascript:

retValObj = JSON.parse(retVal);
if (retValObj.Message != null) {
    alert(retValObj.Message);
}

Sending back a script block via AJAX is the wrong way to do it. Instead, you should return a value (probably JSON using json_encode and then decode using the javascript JSON library) and then call alert from your script.

For example, something like this (untested, but you get the idea):

PHP:

echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test'));

Javascript:

retValObj = JSON.parse(retVal);
if (retValObj.Message != null) {
    alert(retValObj.Message);
}
↙温凉少女 2024-09-19 22:41:19

javascript 在页面加载期间被解析一次。因此,如果你将这些代码放入页面中,它就可以正常工作......浏览器不会解析ajax加载的内容......但我们可以从ajax加载的内容进行javascript函数调用。

javascript is parsed once during page load. So if u put these code in page it works fine.... Browser does not parse on ajax loaded content...but we can make javascript function calls from ajax loaded content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文