Показать сообщение отдельно
  #9 (permalink)  
Старый 31.03.2011, 19:46
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

легко. щас опишу
.........
пусть это будет дано в формате JSON.
почему именно он ? он мне нравится в инете можно найти кучу плюсов за него ( например, можно делать AJAX запросы на другой домен и получать JSON объекты.. да и вообще. удобнее способа не придумать)

ответ с сервера ( т.е. html страница)

Код:
{ 

      "1" : {     "1" : "1-1",
                   "2":"2-1",
                  "3":"3-1" 
        } , 

        "2" : {  "1" : "1-2",
                       "2":"2-2",
                       "3":"3-2" 
        } 

 }
селект многострадальный...
 <select id="sel"></select>

<script src="http://yandex.st/jquery/1.5.1/jquery.min.js"></script>

<script>
// тут уже получили типа данные. для получения данных делаем то,что будет снизу :)

var t = '{ "1" : { "1" : "1-1","2":"2-1","3":"3-1"  } , "2" : { "1" : "1-2","2":"2-2","3":"3-2"  }  }'

// обратите внимание, это строка ( с сервера получаем строку)

 t = $.parseJSON(t); 
// теперь это объект

var a = []; // массив найденного текста (ну, вы понели)))

// бедный мой код... он ужасен, но лучшего способа я не придумал

//либо так
for ( var k in t) { for(var h in t[k]) {a.push( t[k][h]);}  }

// либо через рекурсивный $.each или такой же (рекурсивный) for.. in

/*  теперь a (массив) содержит это :

0: "1-1"
1: "2-1"
2: "3-1"
3: "1-2"
4: "2-2"
5: "3-2"

проходимся по нему циклом и все, добавляем их к селекту
*/
var sel = document.getElementById("sel");

for(var i = 0, b= a.length; i<b; i++){
sel.options[i] = new Option(a[i],i);
}


</script>


а теперь как получить объект (т.е.,это { "1" : { "1" : "1-1","2":"2-1","3":"3-1" } , "2" : { "1" : "1-2","2":"2-2","3":"3-2" } } )

под рукой AJAX нету,поэтому только опишу
$.getJSON( *!*' ВАШ URL' */!* , function(t) {

  // обрабатываем данные. t - OBJECT , как я понял из документации :) .

for ( var k in t) { 

      for(var h in t[k]) { 

                    a.push( t[k][h]); 

        } 

 }

var sel = document.getElementById("sel"); # это наш селект

for(var i = 0, b= a.length; i<b; i++)
      sel.options[i] = new Option(a[i],i);


});



как сформировать JSON объект - читайте в доках

вот тут как сформировать json объект php.net/manual/en/function.json-encode.php

как получать то,что потом будет формироваться в json объект - тут я уже не могу помочь пхп не мое

Последний раз редактировалось melky, 31.03.2011 в 20:24.
Ответить с цитированием