【问题标题】:Action if isset..php/javascript如果 isset..php/javascript 的操作
【发布时间】:2010-02-22 13:50:55
【问题描述】:

我在插入评论时存储一个会话变量..称为 user_message.. 我想,当 user_message 被存储时,然后在 index.php 上显示消息 index.php 现在是:

<div id="message">
<? echo $_SESSION["user_message"]; ?>
</div>

但您需要刷新(f5) 站点,以便在其存储后查看消息..

但我想如果变量 user_message 已经存储了一些东西,然后显示它..

希望你能理解。

【问题讨论】:

  • 你是如何保存评论的?阿贾克斯?显示一些代码。
  • 这只能通过JavaScript来解决。消息应通过 AJAX 存储,并且必须相应地更新站点。

标签: php javascript session show isset


【解决方案1】:

我不确定我是否理解您的意图 - 您是否想在用户发送新评论后刷新用户所在的页面?

如果是这样 - 如果您使用的是普通表单 post/get,那么您可以将用户请求重定向到您想要的任何页面,并使用上面编写的代码 @Seb 显示通知。

如果您使用 ajax 发送评论,您可以从 ajax 调用返回响应,通知创建 ajax 调用的 javascript 函数页面需要刷新,然后将 location.href 变量设置为任何你想要的网址。

但是 - 如果您想为看到 cmets 页面的所有用户刷新页面,一旦另一个用户发送了评论,您将需要每隔几秒/分钟重复一次 ajax 调用,以检查是否发生了变化服务器,如果是这样,使用 location.href 变量将用户重定向到另一个。 如果您仅依赖保存在评论者计算机上的会话变量,则无法执行此操作,因为只有在原始评论者使用您的网站时才能访问它。

【讨论】:

    【解决方案2】:
    <?php if( isset($_SESSION["user_message"]) ): ?>
      <div id="message">
        <? echo $_SESSION["user_message"]; ?>
      </div>
    <?php endif; ?>
    

    【讨论】:

      【解决方案3】:

      如果您希望消息与 cmets 表单显示在同一页面上,我建议您使用一些 Javascript。如果您使用的是 jQuery http://jquery.com/,那么您可以执行类似的操作。

      $('form#CommentFormID').submit(function() {
          var message = $('form#CommentFormID textarea#comment').html();
          $('body').append('<div id="message">' + message + '</div');
      });
      

      没试过,不过应该可以的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 2011-07-23
        • 2017-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多