Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: return значения ajax запроса
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » return значения ajax запроса

Страниц (1): [1]
 

1. Denkill - 24 Августа, 2013 - 18:15:41 - перейти к сообщению
Есть проблемка.

При ajax запросе нужно возвратить значение которое пришло с сервера(json-файл)

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  if (xmlhttp.readyState==4 && xmlhttp.status==200){
  3.       return xmlhttp.responseText;
  4. }


Если сделать так, то возвращает undefined.

Как сделать что бы возвращал именно json файл
2. IllusionMH - 24 Августа, 2013 - 18:19:30 - перейти к сообщению
Denkill, огромный кусок кода, месяц буду искать где же и как он используется.
Это асинхронный запрос и нужно ждать пока придет ответ. Этот код должен использовать только при срабатывании обработчика xmlhttp.onreadystatechange и в этом же обработчике должна вызываться функция которая будет работать с этими данными
3. Denkill - 24 Августа, 2013 - 19:12:01 - перейти к сообщению
IllusionMH пишет:
Этот код должен использовать только при срабатывании обработчика xmlhttp.onreadystatechange и в этом же обработчике должна вызываться функция которая будет работать с этими данными


Это все понятно. Как сделать так что бы он возваращал xmlhttp.responseText.

Вот такой код
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. strong.loadJSON = (function(f,d){
  3.                 var xmlhttp;
  4.                 if (window.XMLHttpRequest){
  5.                   xmlhttp=new XMLHttpRequest();
  6.                 }else{
  7.                   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  8.                  }
  9.                  
  10.                 xmlhttp.onreadystatechange=function(){
  11.                   if (xmlhttp.readyState==4 && xmlhttp.status==200){
  12.                         return xmlhttp.responseText;
  13.                         }
  14.                 }
  15.                 xmlhttp.open("GET","json/"+f+".json",true);
  16.                 xmlhttp.send();
  17.  
  18.         });


Вопрос заключается в том как "возвратить" значение а не работать с ним в onreadystatechange

CODE (javascript):
скопировать код в буфер обмена
  1. var b = strong.loadJSON("index");//В b должен хранится json файл


А как отловить этот момент когда запрос прийдет я незнаю Огорчение
(Добавление)
Может есть какой то другой способ записать в переменную содержимое json-файла?
4. IllusionMH - 24 Августа, 2013 - 19:17:20 - перейти к сообщению
Denkill, вернуть - никак.

 

Powered by ExBB FM 1.0 RC1