我试图在运行一些PHP代码后更新元素的内容。我意识到php首先被执行,但我想通过加载页面我可以找到元素?但是控制台说无法找到null元素,所以我猜想在innerHTML代码运行之前页面没有加载。
任何想法?
else if(strlen($_POST['username']) < 6){
header("Location: http://webpage/register.html");
echo "document.getElementById('elemID').innerHTML = usename too short";
}
答案 0 :(得分:5)
header()
指示您的客户转到新位置,因此输出任何之后会对您的客户产生任何影响,因为您的register.html的内容已由您的处理方式有所不同服务器
如果您可以将register.html更改为使用php,则可以传递
header("Location: http://webpage/register.php?msg=username%20too%20short");
然后在你的register.php
if(!empty($_GET['msg'])) echo $_GET['msg'];
答案 1 :(得分:2)
首先,在标题位置重定向后,您不应该有任何逻辑。在这样的重定向之后放置“exit”或“die”是一个好习惯,因为你不能保证浏览器在重定向之前会看到下一行。实际上,您可以很好地保证它通常不会看到该代码。
如果您要重定向,请将您的错误作为参数添加到重定向网址,并在那里显示错误,如下所示:
header("Location: http://webpage/register.php?error=username%20too%20short");
然后在你register.php(我从.html重命名,所以你可以读取错误参数)你可以引用你的错误,如:
$error = $_GET['error'];
if (!empty($error)) {
//write your error out in some markup or javascript...
}