Обновление переменной PHP с использованием jquery - PullRequest
0 голосов
/ 19 апреля 2011

Я использую следующий код, но не могу заставить его работать.Если бы кто-нибудь мог помочь или указать мне правильное направление, это было бы здорово.То, чего я пытаюсь добиться, это стиль оповещения в Facebook, где оповещение будет появляться без обновления страницы.Количество предупреждений поступает из числа строк в базе данных.Я делаю что-нибудь глупое?

jQuery:

<script type="text/javascript">
var alertNumber = <?php echo $display['alertNumber']; ?>;
setTimeout(checkVariableValue, 2000);
function checkVariableValue() {
     $.ajax({
        url: 'jquery.php?query='.alertNumber,
        success: function(newAlert) {
            if (newAlert != alertNumber);
                alertNumber = newAlert;
                document.getElementById("wibble").innerHTML=alertNumber;
            }
     });
}
</script> 

Ответы [ 6 ]

6 голосов
/ 19 апреля 2011

Эта строка

url: 'jquery.php?query='.alertNumber,

Должна быть

url: 'jquery.php?query='+alertNumber,
3 голосов
/ 19 апреля 2011
url: 'jquery.php?query='.alertNumber,

в моих глазах не так.должно быть url: 'jquery.php?query=' + alertNumber,

2 голосов
/ 19 апреля 2011

Может быть, я что-то упустил, но я не вижу, чтобы ваша страница фактически отображала какой-либо текст для вашей функции для чтения.

1 голос
/ 19 апреля 2011

Мои извинения за ответ.Другие, похоже, нашли проблему (или хотя бы одну), я просто почувствовал, что она слишком плотная для комментария.

Я бы порекомендовал изменить ваш стиль, чтобы в базе данных был установлен флаг чтениявместо того, чтобы держаться за последнюю строку (или в вашем случае количество строк) и использовать это как дискриминатор.Поскольку сообщения растут, вы не захотите (предположительно) сотен результатов, сбрасываемых через вызов AJAX.Кроме того, если вы не предполагаете, что после того, как он был отображен на странице, пользователь это подтвердил.(Примером может служить всплывающее сообщение в последнюю минуту, и пользователь одновременно нажимает на ссылку - теперь видимости нет).

Кроме того, если вы обнаружите, что сайт получает много трафика, может быть, стоит заглянуть в PUSH-сервис (статья, которую я быстро нашел, находит в Google о ней и ее преимуществах )

0 голосов
/ 19 апреля 2011
var alertNumber = <?php echo $display['alertNumber']; ?>;
setTimeout(checkVariableValue, 2000);
function checkVariableValue() {
     $.ajax({
        url: 'jquery.php?query='.alertNumber,

видите эту строку в свойстве url?эта строка не внутри скрипта php ... поэтому вы должны использовать оператор конкатенации javascript (+)

0 голосов
/ 19 апреля 2011

Сейчас ваш php-код, похоже, не отправляет ответ.

Как только вы получите количество строк в переменной $ q, просто добавьте эту строку

echo $q;

Вам также может понадобиться добавить параметр dataType в запрос ajax, чтобы указать, что вы ожидаете ответ типа text

$.ajax({
        url: 'jquery.php?query='+alertNumber,
        dataType : 'text',
        success: function(newAlert) {
            if (newAlert != alertNumber);
                alertNumber = newAlert;
                document.getElementById("wibble").innerHTML=alertNumber;
            }
     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...