Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Многократная вставка PHP кода в JS код
 
 автор: blackcement   (07.04.2009 в 12:48)   письмо автору
 
 

У мнея на ПХП страничке, каждые 10 секунд должен обнавляться счётчик посетителей ОН-ЛАЙН. Но дело в том, что он обновляется, но после первого запуска только. Такое ощущение будто он один раз обработал ПХП скрипт и потом постоянно использует только одно и тоже число. Т.е если зайти на страничку с таким кодом, то счётчик покажет сколько он-лайн, но в дальнейшем будет обновляться на одно и тоже кол-во людей он-лайн. Почему так? Что делать?
INDEX.PHP
<html> 
<head> 
<script>  
function myFunc ()   
{  
document.getElementById ("online").innerHTML ='<?php include"online.php";?>';
}  
</script> 
</head> 
     

<body bgcolor="#ffffff" onload="setInterval(myFunc(),10000)"> 
<table> 
<tr> 
<td ID="kletka">&nbsp;</td> 
</tr> 
</table> 
</body> 
</html>

  Ответить  
 
 автор: Lelik   (07.04.2009 в 13:04)   письмо автору
 
   для: blackcement   (07.04.2009 в 12:48)
 

всё просто: в джаваскрипт жостко прописывается первое значение из <?php include"online.php";?>, которое потом всё время и подставляется :)
Выход — послыать раз в 10 секунд аякс запрос к online.php

  Ответить  
 
 автор: blackcement   (07.04.2009 в 13:23)   письмо автору
 
   для: Lelik   (07.04.2009 в 13:04)
 

Что-то не понял.... Объясни пожалуйста...

  Ответить  
 
 автор: Lelik   (07.04.2009 в 13:36)   письмо автору
 
   для: blackcement   (07.04.2009 в 13:23)
 

если упростить до объянения на пальцах, то твой код после построения страницы приобретает такой вид:

<script>  
function myFunc ()   
{  
document.getElementById ("online").innerHTML ='10';//например, в момент построения страницы было 10 человек на сайте
}  
</script> 

и каждое обращение к этой функции и будет присваювать блоку online значение, то которое прописано в коде, в примере это — 10. Другими словами джаваскрипт не дергает постоянно файл online.php, а использует данные которые есть в функци. Для того, что бы он, вместо обращения к прописаному в коде значению, начал обращаться к файлу online.php необходимо использовать АЯКС.

  Ответить  
 
 автор: blackcement   (07.04.2009 в 14:25)   письмо автору
 
   для: Lelik   (07.04.2009 в 13:36)
 

Это я всё понял, я просто не врубился что такое АЯКС, а теперь ясно - это AJAX. А как им обращаться в этом примере к ПХП скрипту? Я тут нашёл одну книжку в интернете, но что-то не понял ничего. Дайте какой-нибудь пример.
Вот нашёл некоторое
load( url, [data], [callback] )
jQuery.get( url, [data], [callback] )
если это то, то как использовать

  Ответить  
 
 автор: Lelik   (07.04.2009 в 15:27)   письмо автору
 
   для: blackcement   (07.04.2009 в 14:25)
 

вот хорошая статья

  Ответить  
 
 автор: blackcement   (07.04.2009 в 15:41)   письмо автору
 
   для: Lelik   (07.04.2009 в 15:27)
 

Я так понимаю?
document.getElementById ("online").innerHTML = XMLHttpRequest.responseText( '<?php include"online.php";?>' );

Дак у меня и страница должна быть XML или нет?

  Ответить  
 
 автор: blackcement   (07.04.2009 в 19:21)   письмо автору
 
   для: blackcement   (07.04.2009 в 15:41)
 

Объясните пожалуйста, какой это доджен быть запрос и запрос чего? (то что Ajax запрос скрипта, я понимаю, но ведь там ещё POST , GET кудато примкнуть надо, возврат какой-то)

  Ответить  
 
 автор: PAT   (07.04.2009 в 13:42)   письмо автору
 
   для: blackcement   (07.04.2009 в 12:48)
 

>Такое ощущение будто он один раз обработал ПХП скрипт и потом постоянно использует только одно и тоже число.

У вас ПРАВИЛЬНОЕ ощущение.
PHP-скрипт действительно обрабатывает ОДИН раз и результат своей работы отдаёт браузеру.
И отдаёт его в виде ТЕКСТА HTML-кода. И на этом PHP свои функции ИСЧЕРПЫВАЕТ.

А в браузере формируются СВОИ переменные.
Если у вас поменялось значение какой-то JS-переменной, то причём тут PHP-скрипт?

Постарайтесь понять, что HTML-страницы бывают ДВУХ видов (по отношению к СЕРВЕРУ):

1. СТАТИЧЕСКАЯ, т.е. загружаемая на сервер в виде только HTML-кода и JS-скриптов. Эта страница отдаётся браузеру в том виде, в котором была изначально загружена на сервер. Аналогия: браузер получает на обед купленные в магазине пельмени.

2. ФОРМИРУЕМАЯ НА СЕРВЕРЕ, т.е. загружаемая на сервер не только в виде HTML-кода, но и с наличием включений какого-нить серверного языка. Сервер ПЕРЕД отдачей браузеру ФОРМИРУЕТ эту страницу и отдаёт её браузеру точно в таком же виде, как и СТАТИЧЕСКАЯ (т.е. браузер получает только HTML-код и JS-скрипты). Аналогия - браузер получает на обед тоже пельмени, но сделанные вами лично.

Спрашивается: КАКАЯ РАЗНИЦА для браузера?
Отвечаю: НИКАКОЙ РАЗНИЦЫ. Пельмени - они пельмени и есть.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования