【问题标题】:How to push data from one page to another [PHP]如何将数据从一个页面推送到另一个页面 [PHP]
【发布时间】:2015-02-27 11:09:20
【问题描述】:

我正在使用 sockets.io、express 和 php,我想知道是否可以将页面的某些内容(当时只有特定用户可以看到)推送到其他人可以看到的另一个页面。例如,如果管理员有:

<?php $a = $row['test']; //data from test table
$q = '<h2>'.$a.'</h2>';
$b = $row['options']; //data from answers table
$c = '<label"><input type="radio" name="radio" value="'.$b.'" onclick="">'.$a.'</label>
$output = ''.$a.','.$c.',<input type="submit" name="submit" value="submit">';
        echo $output

因此,这会输出为带有单选按钮的问题,作为供客户选择的选项。是否有可能将其推送给客户端。就像管理员会推送第一个问题,然后是下一个问题,等等。我是 webscokets 的新手,但我已经掌握了它,但这真的让我大吃一惊。任何想法都会很有帮助。

编辑:

目前,我已经让普通用户能够查看管理员设置的内容。现在,我的问题是管理员控制如何将数据发送到用户/客户端。我现在有一个按钮,当用户按下下一个时,会出现下一个数据/问题,但我希望管理员能够控制它。就像当用户提交第一个数据时,页面加载并等待管理员推送下一个问题。

【问题讨论】:

    标签: php mysql client-server websocket


    【解决方案1】:

    如果没有 Ajax,您将无法实现这一点。

    一旦用户的浏览器显示页面,除非您更改内容,否则它将保持静态。

    可以简单地每隔几秒自动刷新一次,但更好的方法是让 JS 定期轮询 Web 服务器以获取新的页面内容。

    【讨论】:

    • 非常感谢您的帮助,但我有点理解。你能举个例子吗,因为我对 websockets 还很陌生。
    【解决方案2】:

    我不确定,但据我了解,您希望在客户端浏览器上的页面已经加载后发送一些数据。这实际上是一个非常经典且常见的堆栈问题。

    浏览器呈现页面后,您无法添加任何数据。要获得更多数据,用户必须发送请求、获取或发布。 HTML 表单要求您从页面刷新或重定向。因此,对于动态页面,您可以使用 Ajax 定期向服务器发送 ping 请求以获取更多数据。使用 Ajax,您不必每次都重新加载页面。

    您也可以使用网络套接字。大多数现代浏览器都支持它。 Websockets 打开一个在客户端会话期间保持打开的连接。您可以随时发送数据,而无需考虑用户的请求。

    你可以从这里开始。

    https://www.tutorialspoint.com/websockets/index.htm

    https://www.rfc-editor.org/rfc/rfc6455#section-5.2

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 2013-01-24
      • 2017-01-25
      • 2020-08-16
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      相关资源
      最近更新 更多