gpt4 book ai didi

javascript - document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不适用于普通的 php 变量

转载 作者:行者123 更新时间:2023-12-02 16:33:39 27 4
gpt4 key购买 nike

我很困惑。我可以将 $_GET 或 $_POST 数组中的变量放入元素的 innerHTML 中,但无法放入普通 php 变量中的文本。这是我的代码:

$msg = "We don't recognize that password. Please try again.";
echo "<script>document.getElementById('alert').innerHTML='".$msg."';</script>";
//echo "<script>document.getElementById('alert').innerHTML='".$_POST['email']."';</script>";

注释掉的行效果很好,但使用 $msg 的行则不然。我也尝试过但没有成功,因此用纯旧文本替换也不起作用。

echo "<script>document.getElementById('alert').innerHTML='hello';</script>";

关于我还可以尝试什么的任何想法?我想将 $_POST 或 $_GET 变量以外的内容打印到屏幕上。

谢谢。

最佳答案

将 PHP 值转换为 Javascript 时使用 json_encode()。它将确保该值被正确引用和转义。它还允许您将更多数组传输到 JS(JSON 是对象和数组的 Javascript 文字表示法的子集)。

echo "<script>document.getElementById('alert').innerHTML=".json_encode($msg).";</script>";

由于这引用了该值,因此您不需要在赋值的 JS 部分中包含引号。

关于javascript - document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不适用于普通的 php 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28100920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com