2013-11-02 2 views
0

У меня есть массив с объектом в нем, который возвращается клиенту через сервер node.js, работающий с mongodb. Я хочу выбрать все ключи/поля в объекте (то есть имя, фамилию, телефон), но не их значения (т.е. просто хочу «имя», а не «какое-то имя»), а затем для заполнения этих клавиш в меню выбора используя jquery.Задать выбор клавишами от json

[ 
    { 
    "name": "some name", 
    "surname": "some surname", 
    "telephone": "123456", 
    "address": "street123", 
    "_id": "52751d39b188f14026002711" 
    } 
] 

Ниже, как я получить документы в формате JSON для клиента, и как я заполнить меню выбора (#parameter). Прямо сейчас он заполняет select целым json-документом, что означает каждую пару ключ/значение.

$.getJSON("http://localhost:3000/findAll/"+ coll, function (result) { 
    $.each(result, function(i){ 
     $('#parameter').append('<option>'+JSON.stringify(result[i])+'</option>') 
    })       
}); 

Вторая часть вопроса в том, как выбрать различные/уникальные ключи, если я получить несколько MongoDB документов с разными ключами клиента. Чтобы быть понятным, роль меню выбора заключается в том, чтобы пользователь мог выбрать, по какому ключу он хочет искать всю коллекцию в mongodb. Я не уверен, ясно ли я здесь, но, по крайней мере, первая часть вопроса была бы очень оценена.

ответ

1

Попробуйте (скрипку: http://jsfiddle.net/jzmtL/1/):

$.getJSON("http://localhost:3000/findAll/"+ coll, function (result) { 
    $.each(result, function(i, element){ 
    for (var prop in element){ 
     if (element.hasOwnProperty(prop)){ 
      $('#parameter').append('<option>'+ prop +'</option>') 
     } 
    }      
}); 

Вторая часть вопроса не слишком ясно. Не могли бы вы объяснить немного больше?

+0

Ничего себе, спасибо за быстрый ответ, он работал как шарм, очень ценится. О второй части вопроса. Предположим, что я получил вышеупомянутый json для клиента, а также другой объект, который имеет все ключи, как первый. Как заполнить меню выбора только с помощью уникальных клавиш, а не с теми же клавишами два или более. Потому что теперь, если у меня есть 2 объекта с одинаковыми клавишами, он будет вставляться, и клавиши будут повторяться внутри меню выбора. Извините, если это хромая проблема, я как бы новичок. – Case09

+0

Ну, это зависит от вашего пользовательского интерфейса. Как пользователь получит доступ к каждому из двух отдельных объектов? Будет ли у вас еще один выпадающий список, в котором перечислены объекты? Этот раскрывающийся список #parameter должен использоваться только для одного объекта за раз. – pax162

Смежные вопросы