【问题标题】:Getting new values from Redis on client side在客户端从 Redis 获取新值
【发布时间】:2014-01-24 03:20:38
【问题描述】:

我正在使用 PHP 和 PHPRedis 连接到 Redis。

这很好用

            $redis = new Redis();
            $redis->connect('localhost', 6379);
            $total = $redis->get('total');

假设 $total 现在是 1。然后我使用 Redis 客户端递增键“total”,使其值为 2。

但现在我希望用户能够在单击按钮时看到新值

        <script type="text/javascript">
            window.onload=function() {
                $('#newTotal').click(function (event) {
                        <?php
                            $redis = new Redis();
                            $redis->connect('localhost', 6379);
                            $total = $redis->get('total');
                        ?>
                        $("#updated").html("Total is now <?php echo $total; ?>");

                });
            }
        </script>

但这并没有给出新值。

如何连接以获取更新的值?

【问题讨论】:

  • 您不能将 PHP 嵌套在 JavaScript 中并期望它在客户端执行。 PHP是服务器端语言,你必须发送一个AJAX请求(XMLHttpRequest)。或者将新值插入到您的模板/无论什么,以便 JavaScript 准备好它,您只需在 onClick 上显示该值,但它已经被计算了。

标签: javascript php jquery redis


【解决方案1】:

你必须明白,PHP 运行在服务器端,而 jQuery 运行在客户端。话虽如此,您将需要使用 AJAX。以下是一种快速的方法:

$('#newTotal').click(function (event) {
    $.ajax({
        url: 'yourPHPfile.php',
        type: 'GET',
        success: function(data) {
            $("#updated").html("Total is now " + data);
        }
    });
});

而在yourPHPfile

 $redis = new Redis();
 $redis->connect('localhost', 6379);
 $total = $redis->get('total');

 echo $total; //this is seen as the "data" parameter in the AJAX success

【讨论】:

  • 谢谢 我尝试使用 Ajax 但使用了错误的语法。顺便说一句,对于阅读文件的任何人都应该是语音标记。
  • @user2787904 -- 是的,忘记了:\很高兴它有帮助!
猜你喜欢
  • 2018-05-31
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
相关资源
最近更新 更多