2013-08-13 2 views
0

Я хочу сравнить две переменные, oldRefresh и newRefresh. Значение по oldRefresh «s во входе, так легко хранить его в oldRefresh, набрав var oldRefresh= $('#oldrefresh').val();Как сохранить значение в переменной с .load();

но newRefresh, трудно получить его, мне нужно, чтобы получить его из другого файла с .load();

это код:

var oldRefresh= $('#oldrefresh').val(); 

setInterval(function() 
{ 
    $('#noti_number').load('include/js_notification_count.php?n=".$_SESSION['username']."'); 
    }); 
}, 5000); 

Я попытался это:

var newRefresh = setInterval(function() 
{ 
    $('#noti_number').load('include/js_notification_count.php?n=".$_SESSION['username']."'); 
    }); 
}, 5000); 
alert(newRefresh); 

результат это 2, когда результатом нагрузки должно быть 0.

поэтому я попытался это

setInterval(function() 
{ 
    var newRefresh = $('#noti_number').load('include/js_notification_count.php?n=".$_SESSION['username']."'); 
    }); 
    alert(newRefresh); 
}, 5000); 

результатом этого является [object Object]. Я не понимаю. как мне получить значение load в переменную?

+0

Не используйте '.load()'. Он предназначен для замены содержимого элемента DOM файлом, загруженным Ajax. Вместо этого используйте ['.ajax()'] (http://api.jquery.com/jquery.ajax). – JJJ

+0

Также 'load()' возвращает объект jQuery, а не то, что я думаю, что вы намеревались. –

+1

Просто комментарий, несколько не имеющий отношения к вашему размещенному вопросу: вам может потребоваться перепроверить «n =». $ _ SESSION ['username']. "' Вернуться к вашему скрипту 'js_notification_count.php' и вместо этого просто получить доступ к вашей' $ _SESSION ['username] 'на стороне PHP. Это может сделать вашу клиентскую и серверную логику немного чище. – Divey

ответ

1

Загрузка jQuery заменяет объект информацией, возвращаемой из файла js_notification_count.php. Вы можете добавить .text() или изменить функцию нагрузки, как:

setInterval(function() { 
    $('#noti_number').load('include/js_notification_count.php?n=<?=$_SESSION['username']?>', function(response, status, xhr) { 
     newRefresh = response; 
     alert(newRefresh); 
     } 
    }); 
}, 5000); 

Я хотел бы использовать Ajax вместо того, чтобы хотя (если вам не нужно noti_number иметь возвращаемый ответ) как:

setInterval(function() { 
    $.ajax({ 
     type: "GET", //Change to whatever method type you are using on your page 
     url: "include/js_notification_count.php", 
     data: { n: "<?=$_SESSION['username']?>" } 
    }).done(function(result) { 
     newRefresh = result; 
     alert(newRefresh); 
    }); 
}, 5000); 
+0

дайте мне пример на .text(). –

+0

Попробуйте использовать один из двух других примеров здесь. .text() будет сразу после .load (url) .text(), но не уверен, что будет надежным. Другие функции вызываются после завершения вызова. – fanfavorite

+0

n запрос не работал, в ajax я меняю сеанс с моим именем 'n: 'AbdullahSalma'', поэтому результат должен быть' 60'. в 'include/js_notification_count.php' Я набираю' if (empty ($ _ G ['n'])) {echo "empty";} else {..} 'предупреждение показывает мне' empty'. –

-1

если вы делаете это, вы должны иметь возможность сравнить значения:

$('#noti_number').load(
    'include/js_notification_count.php?n=".$_SESSION['username']."', 
    function(aData) { 
     //Do your comparison here. 
    } 
) 

Данные, переданные обратно, должны быть ответом сервера.

+0

Я сравниваю 'oldRefresh' с чем? ADATA? –

+0

Да, это правильно. aData - это точный ответ от сервера как текстовая строка –

Смежные вопросы