 
			
				10.10.2014, 16:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				одним XMLHttpRequest одновременно передать и получить
			 
			
		
		
		
		Привет всем! 
 
Нужно одним  XMLHttpRequest передать переменную и получить ответ: 
 
xhttp3=new XMLHttpRequest(); 
xhttp3.onreadystatechange=function() { 
if (xhttp3.readyState==4 && xhttp3.status==200) { 
document.getElementById('ajax').innerHTML=xhttp3.r  esponseText;  alert(xhttp3.responseText);} 
} 
 
xhttp3.open('POST','server.php',true);   
xhttp3.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp3.send("zaca="+Prov); 
 
 
alert использую чтоб вывести ответ сервера. 
 
сервер: 
 
<? 
echo 22;  
?> 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 16:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2012 
					
					
					
						Сообщений: 1,410
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 во первых есть спец теги для выделения кода. во вторых, что именно не получается? посмотри в консоль, может там ошибки какие 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 16:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от skrudjmakdak
			 
		
	 | 
 
	| 
		во первых есть спец теги для выделения кода. во вторых, что именно не получается? посмотри в консоль, может там ошибки какие
	 | 
 
	
 
 Отправлять данные отправляет, а ответ в виде числа "22" не приходит.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 17:01
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2012 
					
					
					
						Сообщений: 1,410
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 в network'е (в хроме он так называется) смотрели? что отправляется и что приходит? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 17:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от skrudjmakdak
			 
		
	 | 
 
	| 
		в network'е (в хроме он так называется) смотрели? что отправляется и что приходит?
	 | 
 
	
 
 Я для проверки использую только alert, я же говорю с отправкой нет проблем, код работает, я хачу этим кодом еще и ответ получить в виде числа 22.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 19:46
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var XMLRequest;
(function() {
	var req, reqTimeout,
		_XMLRequest = XMLHttpRequest || window.ActiveXObject && function() {
			return new ActiveXObject('Msxml2.XMLHTTP');
		}
	XMLRequest = function(action, data, callback, onError) {
		var i, keys = [];
		if(req) {
			clearTimeout(reqTimeout);
			req.abort();
			req = null;
		}
		req = new _XMLRequest();
		req.open('POST', action, true);
		req.onreadystatechange = function() {
			if(req.readyState != 4) return;
			clearTimeout(reqTimeout);
			var reqTmp = req;
			req = null;
			if(reqTmp.status == 200) callback(reqTmp.responseText);
			else if(onError) onError(reqTmp.statusText);
		};
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		for(i in data) keys.push(i + '=' + encodeURIComponent(data[i]));
		req.send(keys.join('&') || null);
		reqTimeout = setTimeout(function() {
			req.abort();
			req = null;
			if(onError) onError('Timeout');
		}, 3E4);
	}
})();
XMLRequest('server.php', {foo: true}, function(data) {
     document.getElementById('ajax').innerHTML = data;
});
  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось ruslan_mart, 10.10.2014 в 20:59.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 20:46
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Ruslan_xDD
			
		
	 | 
 
	| 
		keys.join('&') || null
	 | 
 
	
 
 А зачем || null? Где ты видел функции с большой буквы? Какое отношение эта функция имеет к XML (о чем намекает ее имя)?  
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2014, 20:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		danik.js, да ладно, не придирайся, тут всё в порядке.    Код взял из своей либы, давно уже писал, у меня ф-ция просто request называется. Тут назвал XMLRequest, чтобы автору было понятнее, что речь идёт о XMLHttpRequest.
 
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		А зачем || null?
	 | 
 
	
 
 Ну а тут ты прав, наверное.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.10.2014, 22:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.10.2010 
					
					
					
						Сообщений: 2,718
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от wadim
			
		
	 | 
 
	| 
		Я для проверки использую только alert
	 | 
 
	
 
 Из старого, как раз с алертами:
 
if (link.status==200)
	show_totals(link.responseText);
else
	alert(decodeURI(link.statusText));
 
Да, на сервере
 
$errors = function($code) {
	$codes=array(
		'403'=>'Требуется авторизация',
		'404'=>'Продукт не найден',
		'500'=>'Сбой на сервере',
	);
	header('HTTP/1.0 '.$code.' '.rawurlencode($codes[$code]));
	exit;
};
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось kostyanet, 11.10.2014 в 22:46.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |