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

Разное

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

 

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

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

тема: PHP + AJAX фантастика или реальность?
 
 автор: sasha12342   (14.03.2014 в 14:54)   письмо автору
 
 

Всем привет!
Хочу реализовать рандомный вывод пользователей которые находиться он-лайн не перегружая страницу. Пользователей вывожу из базы, потом выбираю одного из них в случайном порядке и вывожу на экран. Если хотим поменять пользователя, нажимаем кнопку, страница перезагружается, скрипт срабатывает повторно и получаем другого пользователя. Принцип такой-же как в рулетке.
Поначалу, думал поместить скрипт в отдельный файл и через ajax получать результат скрипта засунуть в переменную и работать с ним дальше, только без перезагрузки страницы все равно ничего не получается.
Может кто-то уже имеет опыт решения подобных задач?

  Ответить  
 
 автор: KPETuH   (14.03.2014 в 15:24)   письмо автору
 
   для: sasha12342   (14.03.2014 в 14:54)
 

Слабо понятное ТЗ, но AJAX это реальность )

  Ответить  
 
 автор: sasha12342   (14.03.2014 в 17:29)   письмо автору
 
   для: KPETuH   (14.03.2014 в 15:24)
 

>AJAX это реальность )

Да это, понятно... но как подружить его с php?
Приведу пример:
<script type="text/javascript" language="javascript">
$(function() {
    $('#onli').click(function() {
        $.post( 'script.php', {'user': $('#user').val()}, function(data){
            $('#rezult').html(data) // выводим то, что возвращает php в блок (логин пользователя)
        })
    })
})
</script>

<input name='user' id='user' value='$user'>
<input type='button' id='onli' class='button' value='Отправить'>

<div id="rezult"></div>

<?php
if($rezulitat_iz_script_php=="uslovie")
{echo 
"ti horoshii pareni";}
else
{echo 
"privet $rezult";}
?>
Как в переменную $rezulitat_iz_script_php засунуть результат полученный через ajax? как проверить условие и выдать результат, без перезагрузки страницы (чтобы не сработал повторно ajax)?

  Ответить  
 
 автор: elenaki   (14.03.2014 в 18:29)   письмо автору
 
   для: sasha12342   (14.03.2014 в 17:29)
 

У меня есть вывод случайного баннера через определенный промежуток без обновления
всей страницы. Но я баннер просто вывожу, ничего с ним потом не делаю. А почему id
случайного юзера надо брать из AJAX? У вас же он и так имеется как php переменная.

  Ответить  
 
 автор: sasha12342   (14.03.2014 в 18:55)   письмо автору
 
   для: elenaki   (14.03.2014 в 18:29)
 

Не обращайте внимание на название переменных, в переменной "$user" может быть любой параметр по которому в файле script.php подбирается один пользователь. А после того как мы получим имя случайного пользователя, то выполняем те или иные действия. В итоге должно получится следующие: каждый раз когда пользователь нажимает на кнопку, в блоке с низу, показываем нового пользователя (не перезагружая страницу).

  Ответить  
 
 автор: KPETuH   (17.03.2014 в 16:11)   письмо автору
 
   для: sasha12342   (14.03.2014 в 17:29)
 

Не понятно зачем вам в переменную засовывать что-то полученное через ajax если вы сразу можете выводить в браузер.

  Ответить  
 
 автор: sasha12342   (17.03.2014 в 19:52)   письмо автору
 
   для: KPETuH   (17.03.2014 в 16:11)
 

Не понятно зачем мне выводить что-то в браузер, если я могу выключить комп и пойти пиво пить :)
Мне нужно работать с полученным ответом! В файле ajax.php лежит скрип который выбирает 1-го пользователя из определенной группы, и с этим пользователем (логин или id) мне нужно работать в основном файле. Я могу обойтись и без технологии ajax, но скрипт генерации случайного пользователя, уж точно не запустится (повторно) без перезагрузки страницы.
Понимаете?
Есть кнопка на сайте, человек нажал на нее, в случайном порядке был выбран пользователь, его уникальные идентификаторы засунуты в переменную, человек дальше работает с этими данными (сообщения, черный список, и т.д.) если человека не устраивает пользователь, то он нажимает повторно на кнопку и подбираем ему другого пользователя. И все это без перезагрузки страницы!

  Ответить  
 
 автор: KPETuH   (20.03.2014 в 14:36)   письмо автору
 
   для: sasha12342   (17.03.2014 в 19:52)
 

Работайте, кто вам не дает только данные в php скрипт как я это понимаю вам не засунуть, вы можете использовать полученные данные в JS в html, с помощью того же JS можете отправить Ajax'ом данные в другой php скрипт обработать и опять выдать пользователю то что нужно.

После загрузки страницы у вас php уже отработал и как вы пытаетесь в отработавший скрипт загнать данные?

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

  Ответить  
 
 автор: sasha12342   (20.03.2014 в 16:04)   письмо автору
 
   для: KPETuH   (20.03.2014 в 14:36)
 

Вариант... Спасибо!

  Ответить  
 
 автор: psychomc   (14.03.2014 в 16:41)   письмо автору
 
   для: sasha12342   (14.03.2014 в 14:54)
 

iframe есть еще

  Ответить  
 
 автор: Enter   (17.03.2014 в 14:34)   письмо автору
 
   для: sasha12342   (14.03.2014 в 14:54)
 

php формирует данные в формате json. передает эти данные в функцию джаваскрипта. ну, а дальше делайте с этими данными, что нужно. в общем, задача ваша в том, чтобы из пэхэпэ передать данные в неком формате. можно xml, json или еще какой. json удобнее и быстрее.

  Ответить  
 
 автор: sasha12342   (17.03.2014 в 20:00)   письмо автору
 
   для: Enter   (17.03.2014 в 14:34)
 

>php формирует данные в формате json. передает эти данные в функцию джаваскрипта. ну, а дальше делайте с этими данными, что нужно.

<script type="text/javascript" language="javascript">
            $('#rezult').html(data) // выводим то, что возвращает php в блок (логин пользователя)
</script>

<div id="rezult"></div> 

<?php
echo $rezulitat_iz_script_php(полученный из $('#rezult').html(dataкоторый выводится в <div id="rezult"></div> );
?> 

Результат возможно сунуть в "$rezulitat_iz_script_php"? Как это сделать?

  Ответить  
 
 автор: Commander   (17.03.2014 в 22:22)   письмо автору
 
   для: sasha12342   (17.03.2014 в 20:00)
 

Результат возможно сунуть в "$rezulitat_iz_script_php"? Как это сделать?

Нет. Переменную $rezulitat_iz_script_php на стороне браузера (то есть при помощи AJAX) вы изменить не сможете никак - эта переменная в браузере отсутствует.

P.S. Такое ощущение, что вы не знаете разницы между стороной клиента и стороной сервера.

  Ответить  
 
 автор: sasha12342   (18.03.2014 в 00:08)   письмо автору
 
   для: Commander   (17.03.2014 в 22:22)
 

Разницу я прекрасно понимаю, поэтому и написал:
Может кто-то уже имеет опыт решения подобных задач?
Неужели невозможно реализовать то, что я описал выше?

  Ответить  
 
 автор: Commander   (18.03.2014 в 00:45)   письмо автору
 
   для: sasha12342   (18.03.2014 в 00:08)
 

В том-то вся проблема, что не понятна суть задачи.

  Ответить  
 
 автор: Commander   (18.03.2014 в 00:55)   письмо автору
 
   для: sasha12342   (14.03.2014 в 14:54)
 

только без перезагрузки страницы все равно ничего не получается.

В смысле, страница перезагружается из-за нажатия на кнопку? Тот код, который вы привели, как раз и должен загрузить пользователя через AJAX без перезагрузки страницы.

  Ответить  
 
 автор: sasha12342   (18.03.2014 в 15:03)   письмо автору
 
   для: Commander   (18.03.2014 в 00:55)
 

А что именно, вам здесь непонятно:
Мне нужно работать с полученным ответом! В файле ajax.php лежит скрип который выбирает 1-го пользователя из определенной
 группы, и с этим пользователем (логин или id) мне нужно работать в основном файле. Я могу обойтись и без технологии ajax, 
но скрипт генерации случайного пользователя, уж точно не запустится (повторно) без перезагрузки страницы.

Есть кнопка на сайте, человек нажал на нее, в случайном порядке был выбран пользователь, его уникальные идентификаторы
 засунуты в переменную, человек дальше работает с этими данными (сообщения, черный список, и т.д.) если человека не
 устраивает пользователь, то он нажимает повторно на кнопку и подбираем ему другого пользователя. 
И все это без перезагрузки страницы!


С тем ответом, который я получаю через ajax, я не могу работать дальше!!! Разве я могу сделать что-то подобное с ответом полученным через ajax:
<?php
if($<div id="rezult"></div> == "12345")
{echo 
"Привет Колян!";}
else
{echo 
"Ты не Колян!";}
?>
А эту проверку я не могу делать в файле ajax.php потому, что пользователь может отправить сообщение "Коляну" или любому другому случайному "юзеру"! Или в базу я могу записывать таким образом:
$sql = mysql_query("INSERT INTO email (txt,id) Values ('$txt','<div id="rezult"></div>')", $conn);

  Ответить  
 
 автор: elenaki   (18.03.2014 в 16:43)   письмо автору
 
   для: sasha12342   (18.03.2014 в 15:03)
 

ajax.php - выбирает login или id. Что мешает ЭТИ login или id запомнить в переменных хотя бы сессии и потом работать с ними до опупения? Зачем рыть в тексте, который возвращает AJAX, если есть исходинк на сервере, который этот текст формирует???

  Ответить  
 
 автор: sasha12342   (18.03.2014 в 17:23)   письмо автору
 
   для: elenaki   (18.03.2014 в 16:43)
 

Сессия на странице index.php не обновиться, пока мы не соединимся с сервером (перезагрузим страницу). То есть:
Загружаем index.php, стартуем сессию "А" со значением 111, посылаем ajax запрос в ajax.php и там заносим в сессию "А" значение 222. Так вот, в файле index.php сессия "А" будет иметь значение 111 хотя ajax вернет значение сессии: 222! И если я буду работать дальше, с сессией "А" в файле index.php, то я сильно удивлюсь, когда увижу, что она имеет значение 111 а не 222 как мне показывал ajax ответ.

Мне казалось, что я достаточно подробно и понятно излагаю свои мысли, оказывается это не так :-)

Давайте я перефразирую свой вопрос: Можно ли перезагрузить страницу, чтобы пользователь этого не заметил?

  Ответить  
 
 автор: elenaki   (18.03.2014 в 22:20)   письмо автору
 
   для: sasha12342   (18.03.2014 в 17:23)
 

Можно сходить по ссылке на файл ajax.php (который НИЧЕГО не выводит), только делает
запрос, получает результат, заполняет нужные пeременные сессии и по рефереру возвращает
обратно. Я так языки меняю на страницах.

  Ответить  
 
 автор: sasha12342   (18.03.2014 в 23:28)   письмо автору
 
   для: elenaki   (18.03.2014 в 22:20)
 

Эффект будет такой-же, как при перезагрузки страницы :(

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

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