|
|
|
| Всем привет!
Хочу реализовать рандомный вывод пользователей которые находиться он-лайн не перегружая страницу. Пользователей вывожу из базы, потом выбираю одного из них в случайном порядке и вывожу на экран. Если хотим поменять пользователя, нажимаем кнопку, страница перезагружается, скрипт срабатывает повторно и получаем другого пользователя. Принцип такой-же как в рулетке.
Поначалу, думал поместить скрипт в отдельный файл и через ajax получать результат скрипта засунуть в переменную и работать с ним дальше, только без перезагрузки страницы все равно ничего не получается.
Может кто-то уже имеет опыт решения подобных задач? | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 14:54)
| | Слабо понятное ТЗ, но AJAX это реальность ) | |
|
|
|
|
|
|
|
для: 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)? | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 17:29)
| | У меня есть вывод случайного баннера через определенный промежуток без обновления
всей страницы. Но я баннер просто вывожу, ничего с ним потом не делаю. А почему id
случайного юзера надо брать из AJAX? У вас же он и так имеется как php переменная. | |
|
|
|
|
|
|
|
для: elenaki
(14.03.2014 в 18:29)
| | Не обращайте внимание на название переменных, в переменной "$user" может быть любой параметр по которому в файле script.php подбирается один пользователь. А после того как мы получим имя случайного пользователя, то выполняем те или иные действия. В итоге должно получится следующие: каждый раз когда пользователь нажимает на кнопку, в блоке с низу, показываем нового пользователя (не перезагружая страницу). | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 17:29)
| | Не понятно зачем вам в переменную засовывать что-то полученное через ajax если вы сразу можете выводить в браузер. | |
|
|
|
|
|
|
|
для: KPETuH
(17.03.2014 в 16:11)
| | Не понятно зачем мне выводить что-то в браузер, если я могу выключить комп и пойти пиво пить :)
Мне нужно работать с полученным ответом! В файле ajax.php лежит скрип который выбирает 1-го пользователя из определенной группы, и с этим пользователем (логин или id) мне нужно работать в основном файле. Я могу обойтись и без технологии ajax, но скрипт генерации случайного пользователя, уж точно не запустится (повторно) без перезагрузки страницы.
Понимаете?
Есть кнопка на сайте, человек нажал на нее, в случайном порядке был выбран пользователь, его уникальные идентификаторы засунуты в переменную, человек дальше работает с этими данными (сообщения, черный список, и т.д.) если человека не устраивает пользователь, то он нажимает повторно на кнопку и подбираем ему другого пользователя. И все это без перезагрузки страницы! | |
|
|
|
|
|
|
|
для: sasha12342
(17.03.2014 в 19:52)
| | Работайте, кто вам не дает только данные в php скрипт как я это понимаю вам не засунуть, вы можете использовать полученные данные в JS в html, с помощью того же JS можете отправить Ajax'ом данные в другой php скрипт обработать и опять выдать пользователю то что нужно.
После загрузки страницы у вас php уже отработал и как вы пытаетесь в отработавший скрипт загнать данные?
Исходя из вашей ситуации получили данные вывели пользователю, часть данных (типа id пользоваетля) засунули в кнопочки, галочки, формочки, хз как у вас там реализованы черные списки, сообщения и тд, далее реализуете снова ajax-запрос, но уже к другим скриптам. И делаете свои черные списки, сообщения и тд. | |
|
|
|
|
|
|
|
для: KPETuH
(20.03.2014 в 14:36)
| | Вариант... Спасибо! | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 14:54)
| | iframe есть еще | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 14:54)
| | php формирует данные в формате json. передает эти данные в функцию джаваскрипта. ну, а дальше делайте с этими данными, что нужно. в общем, задача ваша в том, чтобы из пэхэпэ передать данные в неком формате. можно xml, json или еще какой. json удобнее и быстрее. | |
|
|
|
|
|
|
|
для: 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"? Как это сделать? | |
|
|
|
|
|
|
|
для: sasha12342
(17.03.2014 в 20:00)
| | Результат возможно сунуть в "$rezulitat_iz_script_php"? Как это сделать?
Нет. Переменную $rezulitat_iz_script_php на стороне браузера (то есть при помощи AJAX) вы изменить не сможете никак - эта переменная в браузере отсутствует.
P.S. Такое ощущение, что вы не знаете разницы между стороной клиента и стороной сервера. | |
|
|
|
|
|
|
|
для: Commander
(17.03.2014 в 22:22)
| | Разницу я прекрасно понимаю, поэтому и написал:
Может кто-то уже имеет опыт решения подобных задач?
| Неужели невозможно реализовать то, что я описал выше? | |
|
|
|
|
|
|
|
для: sasha12342
(18.03.2014 в 00:08)
| | В том-то вся проблема, что не понятна суть задачи. | |
|
|
|
|
|
|
|
для: sasha12342
(14.03.2014 в 14:54)
| | только без перезагрузки страницы все равно ничего не получается.
В смысле, страница перезагружается из-за нажатия на кнопку? Тот код, который вы привели, как раз и должен загрузить пользователя через AJAX без перезагрузки страницы. | |
|
|
|
|
|
|
|
для: 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);
|
| |
|
|
|
|
|
|
|
для: sasha12342
(18.03.2014 в 15:03)
| | ajax.php - выбирает login или id. Что мешает ЭТИ login или id запомнить в переменных хотя бы сессии и потом работать с ними до опупения? Зачем рыть в тексте, который возвращает AJAX, если есть исходинк на сервере, который этот текст формирует??? | |
|
|
|
|
|
|
|
для: 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 ответ.
Мне казалось, что я достаточно подробно и понятно излагаю свои мысли, оказывается это не так :-)
Давайте я перефразирую свой вопрос: Можно ли перезагрузить страницу, чтобы пользователь этого не заметил? | |
|
|
|
|
|
|
|
для: sasha12342
(18.03.2014 в 17:23)
| | Можно сходить по ссылке на файл ajax.php (который НИЧЕГО не выводит), только делает
запрос, получает результат, заполняет нужные пeременные сессии и по рефереру возвращает
обратно. Я так языки меняю на страницах. | |
|
|
|
|
|
|
|
для: elenaki
(18.03.2014 в 22:20)
| | Эффект будет такой-же, как при перезагрузки страницы :( | |
|
|
|