【问题标题】:php returning innerHTMLphp返回innerHTML
【发布时间】:2012-04-16 00:02:42
【问题描述】:

我试图在运行一些 php 代码后更新元素的内容。我意识到首先执行 php,但我想通过加载页面我可以找到元素?但是控制台说找不到 null 元素所以我猜在运行 innerHTML 代码之前页面没有加载。

有人有什么想法吗?

else if(strlen($_POST['username']) < 6){
    header("Location: http://webpage/register.html"); 
    echo "document.getElementById('elemID').innerHTML = usename too short";
}

【问题讨论】:

  • afaik 设置标题和位置后,您无法回显任何内容。

标签: php javascript innerhtml


【解决方案1】:

header() 指示您的客户端转到新位置,因此在此之后输出 anything 不会对您的客户端产生任何影响,因为您的服务器已经对 register.html 的内容进行了不同的处理。

如果您可以将 register.html 更改为使用 php,则可以通过

header("Location: http://webpage/register.php?msg=username%20too%20short"); 

然后在你的 register.php 中

if(!empty($_GET['msg'])) echo $_GET['msg'];

【讨论】:

    【解决方案2】:

    首先,在标头位置重定向之后,您实际上不应该有任何逻辑。在这样的重定向之后放置“exit”或“die”是一种很好的做法,因为您不能保证浏览器在重定向之前会看到下一行。事实上,您可以很好地保证它不会经常看到该代码。

    如果您要重定向,请将您的错误作为参数添加到您的重定向 URL,并在其中设置显示错误的逻辑,如下所示:

    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...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      相关资源
      最近更新 更多