Как получить значение n-го элемента в списке JSON (используя JQuery)? - PullRequest
3 голосов
/ 26 июля 2010

Как мне получить n -ое значение в файле JSON (и, возможно, это тоже дети)?

Например, у меня есть коллекция курсов и связанных событий, отформатированных в JSON, которые я использую для заполнения пары списков выбора, например:

// extract from courselist.php
[{
    "optionValue": "Getting Research into Practice",
    "events": [
        {"date": "29 October"}
    ] 
},
{
    "optionValue": "Human Resources for Managers",
    "events": [
        {"date": "September 1"},
        {"date": "November 2"}
    ]
}]

Я делаю это, чтобы создать форму из этого JSON:

$(function(){
$("select#coursetype").change(function(){
    $.getJSON("courselist.php",{id: $(this).val(), ajax: 'true'}, function(data){
        var options = ''; //item in select list
        options += '<option value=""></option>';
        for (var i = 0; i < data.length; i++) {
            options += '<option value="' + [i] + '">' + data[i].optionValue + '</option>';  
            $("#courselist").html(options);
            $('#courselist option:first').attr('selected', 'selected');
        };
    })
})  
});

.. который выводит HTML в соответствии с:

<select id="coursetype" name="coursetype">
    <option value="0">Getting Research into Practice</option>
    <option value="1">Human Resources for Managers</option>
</select>

Скажем, пользователь выбирает «Кадры для менеджеров» (значение = «1») и $ _POST устанавливает форму, как позже я могу получить название этого курса и его информацию о событии из значения POST?

1 Ответ

2 голосов
/ 26 июля 2010

Если у вас все еще есть доступный объект JSON, вы можете просто передать опубликованное значение обратно в качестве индекса:

var courseName = data[postValue].optionValue;
var courseEvents = data[postValue].events;
for(theDate in courseEvents){
    // do something with the date
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...