Получение новых значений от Redis на стороне клиента

0

Я использую 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>

Но это не дает нового значения.

Как подключиться для получения обновленных значений?

  • 1
    Вы не можете вкладывать PHP в JavaScript и ожидать, что он будет выполнен на стороне клиента. PHP - это серверный язык, вы должны отправить запрос AJAX (XMLHttpRequest). Или вставьте новое значение в ваш шаблон / что угодно, чтобы JavaScript подготовил его, и вы просто отобразите значение onClick, но оно уже было вычислено.
Теги:
redis

1 ответ

2
Лучший ответ

Вы должны понимать, что 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
  • 0
    Спасибо, я пытался использовать Ajax, но использовал неправильный синтаксис. Для любого читающего файл должен быть в речевых отметках, кстати.
  • 0
    @ user2787904 - Да, забыл те: \ рад, что это помогло!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню