 
			
				15.12.2011, 13:31
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.02.2011 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Даже элементарное не пашет
			 
			
		
		
		
		Добрый день. Мне нужно получить 2мерный массив в javascipt из php вида 
res[1][name], res[1][family].
 
Привожу код php
 
<?
$res[1][name]="sasha";
$res[1][name]="masha";
echo json_encode($res);
 
Т.е в конечном итоге хочу обращаться в JS к массиву, как 
 
res[1][name];  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 14:25
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.05.2009 
					
					
					
						Сообщений: 1,163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Я конечно не разбираюсь в php и не знаю, можно ли сразу создавать двухмерные массивы. Но проще всего посмотреть какой ответ возвращает сервер и показать здесь, тогда вам помогут. 
		
	
		
		
		
		
		
			
				__________________ 
				Нужно равняться на лучших, а не оправдываться за счёт худших.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 14:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.02.2011 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
$.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
   alert(data['1']['name']);
});
Выведет "sasha"
 
Т.е ответ получен. Мне нужно получить массив ниже функции AJAX и при этом не data['1']['name'], а data[1][name]  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 14:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.05.2009 
					
					
					
						Сообщений: 1,163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		AJAX асинхронен. Непосредственно после функции вы полчить данные не сможете. Вы можете их сохранить в родительской области callback`a, в частности в глобальной области.  
var globalData;
$.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
   globalData = data;
});
	
 
	| 
		
			Сообщение от tuezov52
			
		
	 | 
 
	| 
		 при этом не data['1']['name'], а data[1][name]
	 | 
 
	
 
 В js синтаксис другой, смеритесь что ле. 
Либо так: 
data['1']['name']
 
Либо так: 
data['1'].name
  
		
	
		
		
		
		
		
			
				__________________ 
				Нужно равняться на лучших, а не оправдываться за счёт худших.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 14:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.02.2011 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Привожу полный js код 
function HelpShow(){
//Заводим переменные форм
  var word = document.getElementById("serch");
  var result = document.getElementById("mySelect");
  var url = document.getElementById("url");
  
  $.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
});
  alert(globaldata['title']);
  var title = new Array()
  title[0] = 'Главная';
  title[1] = 'Продукция';
  title[2] = 'Контакты';
  title[3] = 'Статьи';
  var url = new Array()
  url[0] = 'index';
  url[1] = 'production';
  url[2] = 'contacts';
  url[3] = 'articles';
  
  var buffer = '';
  var first = '';
  var second = '';
  result.style.display = "none";
//Стираем список, если строка ввода пустая
  for (i = 100; i > 0; i--){
  result.options[result.options.length-1] =null;}
  url.value ='';
//Заполняем список
  for (i = 0; i < title.length; i++){
//Подсчет числа сравниваемых символов
  buffer = title[i];
  
  for (j=0; j < word.value.length; j++){
  first += buffer[j].toLowerCase();
  second += word.value[j].toLowerCase();}
  
  if (first == second){
  result.options[result.options.length] = new Option(title[i], url[i]);
  result.style.display = "list-item";
  }
  first=null; second=null;
                                    }
//Стираем список если пустой
  if (word.value == ''){
  result.style.display = "none";
  for (i = 100; i > -1; i--){
  result.options[result.options.length-1] =null;}}
}
function ChangeValue(){
  var word = document.getElementById("serch");
  var result = document.getElementById("mySelect");
  var url = document.getElementById("url");
  word.value = result.options[result.selectedIndex].text;
  url.value = result.options[result.selectedIndex].value;
  result.style.display = "none";
}
Задача - заполнить Array (title, url) из PHP, где данные передаются JSON. 
На данный момент массивы заполнены вручную. 
Это все что требуется.  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 15:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.05.2009 
					
					
					
						Сообщений: 1,163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var title, url, all;
$.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
  all = data;
  title = data.title;
  url = data.url;
});
 
		
	
		
		
		
		
		
			
				__________________ 
				Нужно равняться на лучших, а не оправдываться за счёт худших.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 15:38
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 tuezov52, вы уже полгода изучаете JS и до сих пор на таком уровне? Ну-ну. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 15:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.02.2011 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var title, url, all;
$.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
  all = data;
  title = data.title;
  url = data.url;
});
Не работает  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 15:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.05.2009 
					
					
					
						Сообщений: 1,163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 tuezov52, 
 Очень жаль. Попробуйте не просто копипастить, а подумать. 
		
	
		
		
		
		
		
			
				__________________ 
				Нужно равняться на лучших, а не оправдываться за счёт худших.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.12.2011, 15:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.02.2011 
					
					
					
						Сообщений: 42
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Сделал так. 
function HelpShow(){
//Заводим переменные форм
  var word = document.getElementById("serch");
  var result = document.getElementById("mySelect");
  var url = document.getElementById("url");
  var title, url, all;
$.ajax({
  type: "POST",
  url: "test.php",
  dataType: "json",
}).done (function( data ) {
  all = data;
  title = data.title;
  url = data.url;
});
  alert(url['1']['title']);
  var buffer = '';
  var first = '';
  var second = '';
  result.style.display = "none";
//Стираем список, если строка ввода пустая
  for (i = 100; i > 0; i--){
  result.options[result.options.length-1] =null;}
  url.value ='';
//Заполняем список
  for (i = 0; i < title.length; i++){
//Подсчет числа сравниваемых символов
  buffer = title[i];
  
  for (j=0; j < word.value.length; j++){
  first += buffer[j].toLowerCase();
  second += word.value[j].toLowerCase();}
  
  if (first == second){
  result.options[result.options.length] = new Option(title[i], url[i]);
  result.style.display = "list-item";
  }
  first=null; second=null;
                                    }
//Стираем список если пустой
  if (word.value == ''){
  result.style.display = "none";
  for (i = 100; i > -1; i--){
  result.options[result.options.length-1] =null;}}
}
function ChangeValue(){
  var word = document.getElementById("serch");
  var result = document.getElementById("mySelect");
  var url = document.getElementById("url");
  word.value = result.options[result.selectedIndex].text;
  url.value = result.options[result.selectedIndex].value;
  result.style.display = "none";
}
Понимаете в чем дело. Я пишу на Delphi, Pascal и Php и иногда мне необходимо в php писать дополнения на JS. Я не изучаю JS. И подумать в моем случаи - равносильно ткнуть пальцем в небо. Поэтому я и прошу подсказки. PS "Заметьте! Весь исходный код, что тут есть - я написал сам. Другому автору по поводу моего полугодового изучения JS. Я не изучаю JS я просто более или менее разобрался в синтаксисе. Если Вы думаете, что можете написать мой пример лучше - то он либо будет длиннее, либо более навороченный. Этого не требуется. Если же Вы видите код меньшим и более рациональным, то хотелось бы увидеть хотя бы намек на это".  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |