Я использую jquery .load(), чтобы показать php-файл, который в основном извлекает данные из таблицы. Внутри цикла while у меня есть переменная, которая проверяет ранжирование моего пользователя, однако на каждой .load() эта переменная кажется недоступной, и все в выражении if, содержащем эту переменную, исчезает.PHP сбрасывается/недоступна после загрузки jquery
Теперь я знаю об этом:
- PHP работает, прежде чем какой-либо ответ браузера выдается клиенту, и все код выполняется на сервере. Переменные, объявленные в вашем файле PHP, уничтожены после запуска всего кода PHP; они «исчезают».
- JavaScript запускается после начала реакции браузера, и весь код работает на клиенте. «Загружая» результат вывода файла PHP, , вы не получите никакого доступа к переменным PHP, а только вывод.
Однако, как я должен получить доступ к моей переменной таким образом?
Это линия, которая исчезает после .load()
<div id="deleteSB">
<?php if($u_rank >= 2) {
?>
<div style="float: left;margin-top:3px;margin-right:5px;" id="deletesb">
<a href="<?php echo $siteurl;?>/forum?getDelSb=<?php echo $fetchshoutquer['id']; ?>">
<img src="<?php echo $siteurl; ?>/img/delete.png" /></a></div>
<?php } ?>
</div>
Где $u_rank
переменная, что мне нужно. Если я удалю этот оператор if, все будет хорошо.
Это JQuery:
function loadlink(){
$('#loadshoutbox').load('http://localhost/shoutboxcontent.php');
}
function loadlink2(){
$('#shoutboxinput').load('http://localhost/shoutboxinput.php');
}
loadlink(); // This will run on page load
loadlink2();
setInterval(function(){
loadlink() // this will run after every 5 seconds
}, 5000);
setInterval(function(){
loadlink2() // this will run after every 60 seconds
}, 60000);
Я думал хранить содержимое $u_rank
в переменной JQuery, но тогда я не знаю, как это сделать с, если заявление ...
Я все еще читаю, но я не думаю, что вы можете просто загрузить скрипт php и ожидать его работы. PHP работает до того, как делает страница, поэтому загрузка на PHP-странице будет просто пустой, правильной? Вам нужно сделать вызов AJAX, если вы хотите получить переменные PHP в свой скрипт. – ntgCleaner
Пока работает нормально. И я использую AJAX для вставки новых данных в базу данных. У меня просто проблема с тем, что одна переменная недоступна после load() ... –
Да, я просто не думаю, что вы можете просто загрузить такую переменную, вам нужен еще один вызов AJAX, чтобы вернуть его.Или, если вы хотите эту переменную сразу после вызова AJAX при вставке данных, просто эхо на этом же скрипте и возвращайте данные, как ответ ниже – ntgCleaner