Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите сделать подобие чата (https://javascript.ru/forum/misc/41988-pomogite-sdelat-podobie-chata.html)

webinsoul 08.10.2013 12:59

Помогите сделать подобие чата
 
Добрый день.
Не знаю верна ли логика моего решения данного вопроса. Но теоретически работать должно.
Код:
<script type="text/javascript">
$(document).ready(function(){
   $("#quest_feed").ajaxForm(function(cycle) 
   {
var options = {

  url: "http://site.com.ua/callback.php?code=<? echo $oldcode ?>&target=quest_feed",
  success: function(response) {

var feedArray  = response.split('abra_kadabra')
if (feedArray[0] == 'feedback')
{
$("#resp_quest_feed").html(feedArray[1]);
$(".message").html(feedArray[2]);
}
if (feedArray[0] == 'question')
{
$("#resp_quest_feed").html(feedArray[1]);
$(".question").html(feedArray[2]);
}
	  
  }
};
// передаем опции в  ajaxSubmit
$("#quest_feed").ajaxSubmit(options);
   });

});
</script>


Нужно сделать условие:
Пока feedArray[3] == 'waiting_answer' и если feedArray[0] == 'question' - обновлять (url) аяксом.

На сколько я понимаю поможет while (feedArray[3] == 'waiting_answer')
Только куда его вставить, чтобы зациклить весь скрипт?

ksa 08.10.2013 13:13

Цитата:

Сообщение от webinsoul
Только куда его вставить, чтобы зациклить весь скрипт?

Используй setInterval()...

webinsoul 08.10.2013 13:27

Цитата:

Сообщение от ksa (Сообщение 275440)
Используй setInterval()...

Спасибо. Но все-равно не понимаю куда вставить. :)

На сколько я понимаю нужно поставить setInterval на выполнение всего скрипта, а если feedArray[0] имеет определенные значения (ненужные для обновления) - выполнять clearInterval. Верно?

ksa 08.10.2013 13:31

Цитата:

Сообщение от webinsoul
нужно поставить setInterval на выполнение всего скрипта

Он работает только с функцией...

ksa 08.10.2013 13:34

Цитата:

Сообщение от webinsoul
выполнять clearInterval. Верно?

Не совсем понимаю для чего это делать...

В чем суть чата:
- отправить сообщение пользователя на сервер
- с неким интервалом показывать новые сообщения пользователей

Вот второй пункт и будет выполнять setInterval()...

webinsoul 08.10.2013 13:46

Цитата:

Сообщение от ksa (Сообщение 275450)
Не совсем понимаю для чего это делать...

В чем суть чата:
- отправить сообщение пользователя на сервер
- с неким интервалом показывать новые сообщения пользователей

Вот второй пункт и будет выполнять setInterval()...


Вот тестовая страница
Хочу совместить чат с формой для отзывов.

То есть, нужно зациклить функцию, если в форме выбран "чат" + нету ответа от администратора. Общение будет происходить со стороны пользователя с
одной страницы, и со стороны админа - с другой.

ksa 08.10.2013 13:48

Цитата:

Сообщение от webinsoul (Сообщение 275458)

Не знал, что тестовые страницы так выглядят... :D

webinsoul 08.10.2013 16:39

Никак не получается вставить setinterval :(

Подскажите решение, пожалуйста.

webinsoul 08.10.2013 19:16

Сделал так:

<script type="text/javascript">

 function feedquest()  
        {
 $("#quest_feed").ajaxForm(function() 
 
   	{
var options =    {

  url: "http://site.com.ua/callback.php?code=<? echo $oldcode ?>&target=quest_feed",
  success: function(response) {

var feedArray  = response.split('abra_kadabra')
if (feedArray[0] == 'feedback')
	{$("#resp_quest_feed").html(feedArray[1]);
	$(".message").html(feedArray[2]);}
if (feedArray[0] == 'question')
	{$("#resp_quest_feed").html(feedArray[1]);
	$(".question").html(feedArray[2]);}
if (feedArray[0] == '')
	{$("#resp_quest_feed").html(feedArray[1]);}
  	}
  
				};
// передаем опции в  ajaxSubmit
$("#quest_feed").ajaxSubmit(options);

   });
		}

$(document).ready(function(){
setInterval(feedquest(), 1000);  
});
</script>



Но setInterval не срабатывает, в чем может быть проблема?

ksa 09.10.2013 08:17

Цитата:

Сообщение от webinsoul
Но setInterval не срабатывает, в чем может быть проблема?

В скобках... :)

setInterval(feedquest, 1000);


Часовой пояс GMT +3, время: 18:01.