Я использую codeigniter php framework и select2 jquery plugin.Каков самый умный способ структурирования массива JSON в этом случае?
Я хочу, чтобы загрузить все имена, хранящиеся в моей базе данных с его идентификатором, поэтому я использую аа запрос следующим образом:
select id, name from drivers;
Затем я форматировать результат, возвращаемый таким образом:
$data = array()
foreach ($query->result_array() as $row){
$data[$row["id"]] = $row["name"];
}
return $data;
После этого я печатаю массив, закодированный в JSON, и он получает ajax. В JQuery я сделать что-то вроде этого:
var html_res = "<option></option>";
$.each(data_json, function(key, value){
html_res += "<option value='" + key + "'>" + value + "</option>";
});
$("#my-select2").html(html_res);
Это работает, но я действительно interesed, если есть/простой способ eficient, чтобы получить тот же результат.
Также у меня есть еще один маленький вопрос: Теперь у меня есть запрос, как и выше:
select id, name, age from drivers;
И я хочу, чтобы загрузить содержимое в выбор2 плагин в двух diferents <optgroup>
:
- Первый содержит драйверы с возрастом> 50.
- Последний диск с возрастом < 50.
Но я не знаю, что лучше всего в этом случае структурировать ассоциативный массив в php, а затем загрузить его в select2 с помощью функции $.each
.
Не могли бы вы рассказать мне, как вы это делаете? Я только придумал это решение для первого вопроса (не знаю, является ли это лучшим). Но, боюсь, у меня нет никого для второго.
Любой совет, помощь или совет будут оценены, и если вам нужна дополнительная информация, сообщите мне, и я отредактирую сообщение.
Спасибо! А теперь представьте, что вместо возраста я хочу загрузить страну драйверов и загрузить их в группы опций. Массив php будет выглядеть так: '$ data [$ row [" country "]] [$ row [" id "]] = $ row [" name "]'. Но как я могу разобрать его в jQuery? Вы не можете использовать '$ .each (data_json [" spain "], ...' потому что вы не знаете, сколько стран загружено. – harrison4
Вы делаете '$ .each (data_json, ..)' first, который будет дайте вам «Испанию» как один из «ключей» и список драйверов как «значение». – Halcyon
Что-то вроде этого: http://chopapp.com/#k6wm10dc? Если это так, вы мне очень помогли. хотели узнать об этом в течение длительного времени.:) – harrison4