Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.04.2010, 15:59
Аспирант
Отправить личное сообщение для Polkan Посмотреть профиль Найти все сообщения от Polkan
 
Регистрация: 30.04.2010
Сообщений: 49

Подскажите, как вернуть js-скрипт массив
Здравствуйте, товарищи.
Подскажите, плз, кто знает.

Синхронным ajax запросом вызывается php-скрипт, который формирует некий массив.
Вопрос в том, каким образом этот массив получить обратно в js.

Если в php пишу:
print_r($array);
а в js:
var otvet = xmlhttp.responseText;

то получаю, естественно, не массив, а строку или что-то вроде того.

Собственно вопрос в том, как мне получить именно массив,
либо получить все же строку, но перевести минимальной кровью ее в массив.
Ответить с цитированием
  #2 (permalink)  
Старый 30.04.2010, 16:00
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

http://www.google.ru/#hl=ru&source=h...439e8e69a099b1
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 30.04.2010, 16:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://json.org/

Сообщение от Polkan
Синхронным ajax запросом
Плохая идея, браузер виснет же.
Ответить с цитированием
  #4 (permalink)  
Старый 30.04.2010, 16:12
Аспирант
Отправить личное сообщение для Polkan Посмотреть профиль Найти все сообщения от Polkan
 
Регистрация: 30.04.2010
Сообщений: 49

Спасибо, но про json уже читал. не подходит. хочется сделать без посторонних библиотек.

Запрос синхронный, потому что с асинхронным почему-то не получается вернуть данные. Именно вернуть в переменную. если сделать targetObj.innerHTML = xmlhttp.responseText; - то данные приходят и помещаются на страницу, но если делать returnedData = xmlhttp.responseText; то ничего не получается.
Ответить с цитированием
  #5 (permalink)  
Старый 30.04.2010, 16:18
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Во первых для JSON не нужно подключать никаких библиотек.
Во вторых прочитайте вот это ... http://xmlhttprequest.ru/
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #6 (permalink)  
Старый 30.04.2010, 16:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Polkan
Спасибо, но про json уже читал. не подходит. хочется сделать без посторонних библиотек.
Для парсинга на стороне js никакие библиотеки не нужны, а в php есть стандартные функции.

Nekromancer,
шустрый какой
Ответить с цитированием
  #7 (permalink)  
Старый 30.04.2010, 16:21
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Kolyaj,
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #8 (permalink)  
Старый 30.04.2010, 16:37
Аспирант
Отправить личное сообщение для Polkan Посмотреть профиль Найти все сообщения от Polkan
 
Регистрация: 30.04.2010
Сообщений: 49

http://xmlhttprequest.ru/ я читал вдоль и поперек. Да и вообще поискав в интернете нашел только один вариант решения - использовать синхронный запрос.
Все-таки мне кажется странным подход с json, но я посмотрю. Хотя всего-то и требуется, что разобрать как-то строку. Неожиданные сложности.
Ответить с цитированием
  #9 (permalink)  
Старый 30.04.2010, 16:47
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

ну капец.. чего сложного..
function httpRequest(){
	try{
		return new window.ActiveXObject("Microsoft.XMLHTTP");
	}catch(e){
		return new window.XMLHttpRequest();
	}
};
var request = httpRequest();
request.open('GET', 'file.php', true);
request.onreadystatechange = function(){
	if(/4|complete|loaded/.test(request.readyState)){
		if(request.status==200){
			var response = eval(request.responseText);
		}else{
			//...
		}
	}
}
request.send(null)
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #10 (permalink)  
Старый 30.04.2010, 16:49
Аспирант
Отправить личное сообщение для Polkan Посмотреть профиль Найти все сообщения от Polkan
 
Регистрация: 30.04.2010
Сообщений: 49

Сложность в том, что в response ничего не присваивается. По крайней мере при передаче данных по POST.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как написать на JS... saider Javascript под браузер 6 29.04.2010 09:14
как привязать ссылку с Html страницы на вынесенный в отдельную папку js скрипт? TIIIMOXAN Общие вопросы Javascript 2 09.11.2009 19:23
Как передать массив из PHP в js (AJAX) Александр Иванов Общие вопросы Javascript 7 10.09.2009 10:22
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00