Заполнить список выбора из JSON - PullRequest
3 голосов
/ 06 июня 2011

Я искал решение, которое кажется простой проблемой, но я не могу найти решение ... любое руководство будет оценено.

Я пытаюсь создать поле выбора, используя объект JSON, полученный из сценария PHP. Скрипт PHP (versions.php) выполняет запрос к таблице базы данных; код выглядит следующим образом:

$posts = array();
if(mssql_num_rows($result)) {
  while($post = mssql_fetch_assoc($result)) {
    $posts[] = $post;
  }
}
header('Content-type: application/json');
echo json_encode($posts);

... и возвращает следующую структуру json:

[{ "версия": "3.3.0"}, { "версия": "1.5.0"}]

Файл PHP вызывается из центрального файла JS, который имеет следующую структуру:

jQuery(function($){
    $.getJSON('versions.php', function(data) {
        var select = $('#release-list');
        $.each(data, function(key, val){
            var option = $('<option/>');
            option.attr('value', val)
                  .html(data)
                  .appendTo(select);
        });
    });
});

Глядя на firebug, я вижу списки объектов, но не значения в массиве. Я предполагаю, что это связано с кодом в файле javascript выше - просто не уверен, как получить доступ к значениям из объекта json.

Заранее спасибо.

1 Ответ

4 голосов
/ 06 июня 2011

Ты почти у цели.Исходя из вашей структуры JSON, она должна выглядеть примерно так:

jQuery(function($){
    $.getJSON('versions.php', function(data) {
        var select = $('#release-list');
        $.each(data, function(key, val){
            $('<option/>').attr('value', val.version)
                  .html('version ' + val.version)
                  .appendTo(select);
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...