#php #javascript #mysql
#php #javascript #mysql
Вопрос:
<?php
$query3 = "SELECT message FROM messageslive LIMIT 1";
$result3 = mysql_query($query3,$connection) or die (mysql_error());
confirm_query($result3);
while($userinfo3 = mysql_fetch_array($result3)){
$msgLive = $userinfo3['message'];
}
?>
<script type="text/javascript">
var msg = "<?php echo $msgLive ; ?>";
</script>
Что меня беспокоит, так это то, что в таблице базы данных слишком много данных для поиска и извлечения, поэтому переменная PHP $msgLive
еще не имеет значения, поэтому переменная Javascript var msg
получает пустое значение. Как попросить javascript подождать, пока переменная PHP $msgLive
не получит значение, а затем только передать значение из переменной php в Javascript?
Ответ №1:
Вам не стоит беспокоиться об этом, потому что сначала выполняется серверный скрипт, не торопится взаимодействовать с базой данных, присваивает msgLive
переменной значение и, наконец, генерирует HTML, который отправляется клиенту. В течение всего этого времени клиент ждет (и, вероятно, проклинает своего провайдера за медленное соединение, которое он испытывает :-)). Таким образом, как только HTML-код попадет в клиентский браузер, переменной javascript будет присвоено значение. Таким образом, нет необходимости указывать javascript на ожидание, javascript даже не существует, пока сервер не завершит свою работу и не отправит HTML клиенту.
Комментарии:
1. что, если я добавлю другие php-коды <?php $ msgLive=»12345″ ?> под кодами javascript? Значение переменной javascript var msg станет «12345»?
2. @zac1987, неважно, куда ты это поместил. Вы действительно должны различать код на стороне сервера и код на стороне клиента. Это два совершенно разных процесса, происходящих в два разных момента времени. Сначала сервер, который генерирует HTML, который отправляется клиенту, а затем клиент получит его, и если этот HTML содержит javascript, он будет запущен внутри браузера, …
3. Таким образом, сообщение var станет «12345». Я это уже понял. Спасибо.
4. но когда я объявляю <?php $ username=»abc»; ?> тогда я оповещаю javascript («<?php echo $ username; ?>»); это оповещение об успехе «abc». Но когда я переключаю код javascript на приведенный выше php-код, он не выдает предупреждение «abc». Если, как вы сказали, php run finish 1st, тогда запускайте только javascript. Почему javascript не выдает предупреждение о значении переменной php?
5. @zac1987 Javascript НИКОГДА не будет выполняться до php, в этом нет смысла!