Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Заполнить массив (https://javascript.ru/forum/dom-window/14680-zapolnit-massiv.html)

LextoR 26.01.2011 00:11

Заполнить массив
 
Как заполнить массив данными из запроса?

тоесть из запроса можно плучить один результат, но там их много, и точное кол-во не указано...

function onGetAudioData(audio) {
    var r,html;
    if (audio.response) {
        r = audio.response;
        if (r.me) {
// элементы для одной строки.. как один объект чтоли...
            var aaid = r.me.aid //не порядковые ИД..
            var atitle = r.me.title
            var aartist = r.me.artist
            var adur = r.me.duration
            var aurl = r.me.url

html = "<b>"+aartist+"</b> - <i>"+atitle+" ( "+r.me.duration+" sec )</i>[<a href='"+aurl+"'>Download</a>]" //строка вывода
//кол-во их неизвестно
            ge('openapi_audio').innerHTML = html
        }
    }
}

<span id="openapi_audio"><a href="#" id="audioload" onclick="getAudioData()">Get Audio</a></span></div><br>

Это на странице у меня для вывода переменной html


Пример ответа на запрос в формате XML
<?xml version="1.0" encoding="utf-8"?>
<response list="true">
<audio>
<aid>60830458</aid>
<artist>Unknown</artist>
<title>Bosco</title>
<duration>Unknown</duration>
<url>httр://site.ru/1.mp3</url>
</audio>
<audio>
<aid>59317035</aid>
<owner_id>1234</owner_id>
<artist>Unknown2</artist>
<title>Unknown2</title>
<duration>234</duration>
<url>httр://site.ru/2.mp3</url>
</audio>
</response>

ksa 26.01.2011 09:17

Цитата:

Сообщение от LextoR
Как заполнить массив данными из запроса?

Общие рекомендации всегда одинаковы:
- Читай данные
- Пиши их в массив

Ты придумал какой у тебя будет "массив"? Потому ка в примере "ответа на запрос в формате XML" можно "увидеть" две строки с разношёрстной информацией.

LextoR 26.01.2011 17:16

Мне вобщем надо как то Массив в Массиве сделать

если исходить из примера то внутри Response (которого неизвестное кол-во, тоесть надо как то сделать подсчет сколько внутри него массивов Audio ) нужно вставить массив Audio с переменными
var aaid = r.me.aid
var atitle = r.me.title 
var aartist = r.me.artist 
var adur = r.me.duration 
var aurl = r.me.url


а потом эти элементы вывести в подобное... только кол-во таких строк должно зависить от пересчета раньше
(данные в строках разные, так как они разные приходят в каждома элементе массива Респонс...
html = "<b>"+aartist+"</b> - <i>"+atitle+" ( "+adur+" sec )</i>[<a href='"+aurl+"'>Download</a>]<br>" //строка вывода


тока вот я хз как это все сделать(
P.S. Если криво изъяснился, то извините))

ksa 26.01.2011 21:35

Цитата:

Сообщение от LextoR
Мне вобщем надо как то Массив в Массиве сделать

И в чем проблема?
Если данные идут "построчно" и внутри "строки" имеют чётко определенное количество элементов можно использовать объекты...
http://javascript.ru/Object

Если сойдут и числовые индексы - можно использовать только массивы
http://javascript.ru/Array

LextoR 26.01.2011 21:39

Воо, что-то похожее на правду))
Щас попробую. Спасибо)


Часовой пояс GMT +3, время: 05:36.