GroupBy in JavaScript zu Gruppe JSON-Daten, und füllen Sie auf optgroup

Ich bin ein bisschen verloren.
Ich bin immer diese JSON:

[{
    "id": "210",
    "name": "Name 1",
    "category": "Category 1"
}, {
    "id": "187",
    "name": "Name 2",
    "category": "Category 1"
}, {
    "id": "186",
    "name": "Name 3",
    "category": "Category 1"
}, {
    "id": "185",
    "name": "Name 4",
    "category": "Category 1"
}, {
    "id": "184",
    "name": "Name 5",
    "category": "Category 1"
}, {
    "id": "183",
    "name": "Name 6",
    "category": "Category 1"
}, {
    "id": "182",
    "name": "Name 7",
    "category": "Category 1"
}, {
    "id": "181",
    "name": "Name 8",
    "category": "Category 2"
}, {
    "id": "180",
    "name": "Name 9",
    "category": "Category 3"
}, {
    "id": "178",
    "name": "Name 10",
    "category": "Category 2"
}]

Und ich möchte dies alles in einem select mit Optionen und optgroups. Tatsächlich ist die optgroup werden sollte, Kategorie

Ich würde gerne so etwas wie dieses:

<select name="products" class="product" id="product">
<optgroup label="Category 1">
    <option value="210">Name 1</option>
    <option value="187">Name 2</option>
    <option value="186">Name 3</option>
    <option value="185">Name 4</option>
    ...
</optgroup>
<optgroup label="Category 2">
    <option value="181">Name 8</option>
    <option value="178">Name 10</option>
</optgroup>
<optgroup label="Category 3">
    <option value="180">Name 9</option>
</optgroup>

Heute habe ich nur gemacht, weil ich habe Mühe zu viel:

$(document).ready(function () {
    $.getJSON("5.php", {
        val: $(this).val()
    }, function (data) {
        $.each(data, function (i, item) {
            $("<option/>").attr("value", item.id).append(item.name).appendTo("optgroup");
        });
    });
});

Wie Sie sehen können keine optgroup 🙂
Gibt es eine Möglichkeit, dies zu tun?
Kann ich auch ändern, meine JSON, wenn es können es einfacher machen.

Vielen Dank für jede Hilfe.

InformationsquelleAutor user1108276 | 2011-12-20

Schreibe einen Kommentar