gpt4 book ai didi

PHP-echo 中的 JavaScript 不明显

转载 作者:行者123 更新时间:2023-11-27 23:38:37 26 4
gpt4 key购买 nike

在我的 HTML 页面中,我有一个 formaction="register.php"和一个 <p id="slogan"> 。我想要 register.php 中的 PHP 代码更改 <p> 的值通过回显一些 Javascript。

但是,该段落在我的 HTML 页面中没有更改,我不明白为什么。

这是我的简化 HTML 页面包含的内容:

<body>
<p id="slogan"> hello </p>

<form action="../scripts/register.php" method="post">
...
</form>
</body>

这是我的简化的 register.php 包含的内容:

<?php
...
if (mysqli_query($conn, $sql)) {
header("Location: http://www.google.com");
echo "<script>
document.getElementById('slogan').innerHTML = 'Character successfully introduced.';
</script>";
sleep(3);
}
?>

回显的 JavaScript 应该会改变 "hello""Character successfully created."

背后的原因sleep(3)是等待三秒钟,以便您有时间在重定向到 Google 之前注意到更新的段落。

最佳答案

从几个方面来说,这是一个糟糕的实现(听我说完)。

首先,我建议不要向页面注入(inject) javascript。为什么?因为为了显示该 javascript,您依赖于两个因素:

  1. 要在客户端浏览器上启用 JavaScript。
  2. PHP 在发生这种情况时休眠。

这可能看起来像两个小点,但每次你让 PHP 进入休眠状态时,这实际上都是一个拦截器 - 当这种情况发生时,没有别的。

另外,如果我正确地理解了你的理论,你的代码中会有轻微缺陷 - 看来你想在“主脚本”页面而不是中间的 register.php 中注入(inject)成功消息页。如果是这样的话,它永远不会被执行。如果我错误地选择了您,则值得在问题中添加更多代码以澄清到底发生了什么。

替代方法

我的建议是执行以下操作:

注册.php

if($your_var == 1) {
header('Location: youroriginalscript.php');
$_SESSION['yoursessionvar'] = 'Character successfully created.';
}

你的原始脚本.php

... (beside your slogan HTML entity) ...
<div id="slogan">
<?php
if(isset($_SESSION['yoursessionvar'])){
echo $_SESSION;
}
?>
</div>

这绝不是完美的,但它应该为您提供一个入门的想法。

您的原始脚本还假设 Angular 色创建始终成功。情况可能并非如此,在向客户提供误导性反馈之前应仔细检查。检查它,确保它是正确的,并且永远不要假设它在页面跳转之间保持相同!

提示:如果您尝试让 PHP 休眠或做一些疯狂的事情,它总是、总是、总是创建瓶颈。

编辑

好吧,从你编辑的问题来看,你似乎把 PHP/Javascript 搞混了一点。 Here's another answer我不久前写过解释这种差异的文章,但实际上还有数百万其他的:

关于PHP-echo 中的 JavaScript 不明显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906410/

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