【问题标题】:Use PHP to change contents of an element使用 PHP 更改元素的内容
【发布时间】:2013-09-07 05:57:15
【问题描述】:

对于我的登录页面,目前如果密码不正确,我必须重定向到另一个页面。有什么方法可以让我在使用 PHP 的常规登录页面的错误页面上插入或显示错误消息,从而消除对错误页面的需要?我可以很容易地使用 jQuery ($("#error").css("visibility","visible");,但我不知道如何使用 PHP 与 DOM 进行交互,因为它是在服务器上执行的。

【问题讨论】:

  • 使用HTML Parser
  • 你需要 PHP 和 javascript 的组合,不能用 PHP 在客户端做任何事情。请参阅 Rasmus 的快速教程:news.php.net/php.general/219164
  • 你自己说的。 php在服务器端执行。一旦它提供了页面,php就完成了。 Javascript 用于与 dom 交互。

标签: php html dom


【解决方案1】:

您可以通过简单地回显数据来使用 PHP 使所有 Javascript(包括 Jquery)和 HTML 工作。例如:

<?php
echo "<script>$('#error').css('visibility','visible');</script>
?>

请记住在 Javascript 中使用单引号,以免与 PHP 的 echo 函数的双引号冲突。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您真的不必隐藏/显示元素。当出现错误时,您只需回显一条错误消息。比如:

    <?php
    $showErr = false;
    if ($err == true) {
        $showErr = true;
    }
    
    //Put this part in code where you want content of the #error to be displayed
    if ($showErr == true) {
        echo '<div id="error">ERROR MESSAGE HERE</div>';
    }
    ?>
    

    【讨论】:

    • 为什么投反对票?请评论为什么投反对票,这样我们就可以为自己辩护:-)
    【解决方案3】:

    如果需要在 PHP 中生成错误消息,您可能需要考虑使用 AJAX。它是一种 JavaScript 方法,用于从服务器获取数据并在客户端代码中对其进行处理,而无需更改 Web 浏览器的页面。然而,做对会有点复杂,做错只会让一切变得更慢和更麻烦。

    这个想法是使用 AJAX 请求(例如jQuery's ajax function)将表单数据提交到一个特制的链接,该链接返回一个可在 JavaScript 中解析的片段,而不是整个网页。该片段将告诉客户端登录是否成功。如果成功,该片段应包含登录凭据,JavaScript 回调应使用该登录凭据设置任何会话 cookie 并重定向到您最终应该访问的任何页面。如果不成功,片段应包含回调应显示给客户端的错误消息。处理 AJAX 请求的 JavaScript 还必须考虑任何传输错误,并且它应该向用户提供表单实际上已提交的反馈;这些东西是由浏览器通过正常的表单提交而不是 AJAX 请求提供的。

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 2023-04-01
      • 2021-05-10
      • 1970-01-01
      相关资源
      最近更新 更多