Показать сообщение отдельно
  #1 (permalink)  
Старый 20.08.2009, 16:33
Новичок на форуме
Отправить личное сообщение для davlas Посмотреть профиль Найти все сообщения от davlas
 
Регистрация: 20.08.2009
Сообщений: 9

Двумерный массив. Есть ли отличия?
Здравствуйте, уважаемые. Пожалуйста помогите найти где "собака порылась?"
отличается ли массив, полученный из xml от того, что нужно?
может в xml что-то не то?
Вот то, "что нужно" - двумерный массив (к примеру, о семейном положении)
arrOptions=new Array(
  ["not specified","1"],
  ["single","2"],
  ["in a long-term relationship","3"],
  ["engaged","4"],
  ["married","5"],
  ["divorced","6"],
  ["separated","7"],
  ["widowed","8"]
);

Вот пример того, как получаю значения в этот массив из json строки (работает идеально. пишу сюда чтобы не показаться совсем уж идиотом и ламером /*а может кому пригодится*/) -
TempArrOptions={"marital":[["not specified","1"],["single","2"],["in a long-term relationship","3"],["engaged","4"],["married","5"],["divorced","6"],["separated","7"],["widowed","8"]]};
arrOptions=TempArrOptions.marital;


А вот так - из xml файла -
вот xml файл:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
     <Items>
          <Item>
               <Name>not specified</Name> 
               <ID>1</ID> 
          </Item>
         <Item>
               <Name>single</Name> 
               <ID>2</ID> 
         </Item>
...... и так далее ......
  </Items>


var xml;  
    if(window.XMLHttpRequest) {  
        xml=new window.XMLHttpRequest();  
        xml.open("GET", "marital.xml", false);  
        xml.send("");  
        TempArrOptions = xml.responseXML;  
    } else if(window.ActiveXObject) {  
             xml=new ActiveXObject("Microsoft.XMLDOM");  
             xml.async=false;  
             xml.load("marital.xml");  
            TempArrOptions = xml;
    } else {  
             alert("Загрузка XML не поддерживается браузером");  
	};  

	var towns = TempArrOptions.getElementsByTagName("Name");
	var arrOptionsPre = new Array();
 	if(towns)  
	var arr2;
	for(var i=0; i<towns.length; i++) {  
		var x = new Array();

		x[0] = towns.item(i).firstChild.data;
		x[1] = i+1;

		arr2=arrOptionsPre.concat(x);
		arrOptionsPre=arr2;
 	}  
	
	arrOptions=arrOptionsPre;

Последний раз редактировалось Octane, 20.08.2009 в 19:28. Причина: используйте bb-коды [html] и [js]
Ответить с цитированием