Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2012, 16:57
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Ajax post запрос
Только начал изучать ajax запросы, столкнулся с такой проблемой:
// Кроссбраузерно
function getXmlHttp(){ 
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
var m = [1,2,3] /* Вот мне например надо отправить этот массив на сервер, и с помощью уже php взять m[2] */
function vote() {
	
	var req = getXmlHttp()  
       	
	req.onreadystatechange = function() {  

			if(reg.status==4 && req.status == 200) { 
       
		document.getElementById('div').innerHTML = req.responseText
			

} 
	
		

	}

       	req.open('POST', '/data/test.php', true); // куда остылаем  

	
	
	 
        
	req.send(m);  // отослать запрос
  
        
	 
}

P.S. такое вообще возможно: отправить на сервер массив из js, и с помощью php произвести нужные преобразования?
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 20.04.2012 в 17:00.
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2012, 17:13
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

По HTTP передается текст. Твой массив перед отправкой автоматически преобразуется в строку. Чтобы упростить парсинг текстовых данных, используй JSON (parse, stringify, json_decode, json_endcode).

Cейчас достаточно var req = new XMLHttpRequest;

Последний раз редактировалось Octane, 20.04.2012 в 17:17.
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2012, 17:26
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Octane,
Это будет кроссбразурено? Просто в справочнике, так дано. Ок, щас попробую
__________________
оляля, ололо
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2012, 17:28
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

XMLHttpRequest IE7+
JSON IE8+ https://github.com/douglascrockford/JSON-js
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2012, 17:39
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

JSON.parse() - работает как eval, так?
JSON.stringify - преобразует код в строку
=======
json_decode - аналогично JSON.parse(), только php
json_encode - аналогично JSON.stingify, только php
Так?
Я правильно понял, что вы предлагаете мне, отправлять массив вот так:
reg.send(JSON.strngify(m))

А на сервере, эту строку "раскодировать" в обычный код:
$mas = '[1,2,3]'
json_decode($mas)
__________________
оляля, ололо
Ответить с цитированием
  #6 (permalink)  
Старый 20.04.2012, 17:52
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

да
Ответить с цитированием
  #7 (permalink)  
Старый 20.04.2012, 18:06
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Спасибо, но у меня еще вопрос, теперь уже по поводу php:
<?php
$mas = $_POST['что мне здесь писать?']
json_decode($mas)
echo $mas
?>

Я вообще правильно принимаю информацию? (массив m)
__________________
оляля, ололо
Ответить с цитированием
  #8 (permalink)  
Старый 20.04.2012, 18:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от 9xakep Посмотреть сообщение
// Кроссбраузерно
function getXmlHttp(){ 
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
Не понимаю зачем вы используете такую кашу... Да еще и начиная с проверки ИЕшных методов.. Проверять нужно изначально w3c реализации а уж потом юзать прочую лабуду.

Вот этого за глаза достаточно:
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 20.04.2012, 18:16
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

devote,
я же написал, что смотрел по справочнику на этом сайте. И уж извини, что когда я это читал, рядом со мной никого не было, кто бы сказал, что этой "лабуды" писать не надо =/
__________________
оляля, ололо
Ответить с цитированием
  #10 (permalink)  
Старый 20.04.2012, 18:17
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

что бы получить массив функцией json_decode, ей нужно обязательно указывать вторым параметром значение true то-есть:
$arr = json_decode( $res, true );
в противно случае она будет преобразовывать данные в объект.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
POST запрос на AJAX vah-smile AJAX и COMET 3 11.06.2011 23:34
проблемка с объектом, POST запрос Ajax zercs jQuery 1 24.04.2011 19:06
POST запрос воспринимается как OPTIONS neshta AJAX и COMET 0 29.03.2011 23:34
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
ajax запрос с подгружемным js HelpeR AJAX и COMET 1 27.10.2008 12:44