0

HTMLドロップダウンメニューに、次を含む外部JSONファイルのデータを入力しようとしています

{
    "Destinations": [
    {
        "destinationName": "London",
        "destinationID": "lon"
    },
    {
        "destinationName": "New York",
        "destinationID": "nyc"
    },
    {
        "destinationName": "Paris",
        "destinationID": "par"
    },
    {
        "destinationName": "Rome",
        "destinationID": "rom"
    }
    ]
}

私が望むのは、ロンドン、ニューヨークなどのdestinationNameを表示するドロップダウンメニューですが、これにアプローチする方法について混乱しています。

どんな助けでも大歓迎です。

4

4 に答える 4

0

<select>HTML でタグを作成し、属性 を<option>使用して入力します。になりますが、表示されます。valueValuedestinationIDdestinationName

<form action="demo_form.asp">
    <select name="cars">
        <option value="volvo">Volvo XC90</option>
        <option value="saab">Saab 95</option>
        <option value="mercedes">Mercedes SLK</option>
        <option value="audi">Audi TT</option>
    </select>
    <input type="submit" value="Submit">
</form> 
于 2013-07-20T09:47:36.510 に答える
0

このコードを試してください:

$.getJSON('yourfile.json', function(data) {
    destinations = data['Destinations']

    $.each(destinations, function(id, destination) {
        destination = destination["destinationName"]
        alert(destination)
    })
});

宛先変数で宛先値を取得できます。for、after、この変数の値ですべてを実行できます。

于 2013-07-20T10:00:32.537 に答える
0

次のようなサーバーからの応答を受け取ったと考えてください

{
    "Destinations": [
    {
        "destinationName": "London",
        "destinationID": "lon"
    },
    {
        "destinationName": "New York",
        "destinationID": "nyc"
    },
    {
        "destinationName": "Paris",
        "destinationID": "par"
    },
    {
        "destinationName": "Rome",
        "destinationID": "rom"
    }
    ]
}

次に、次のステップはそのjsonの反復です

$.each(data.Destinations, function(key, val) {
    items.append('<option value="' + val.destinationID + '">' + val.destinationName + '</option>');
  });

ここでデモを見ることができますFiddle Demo

于 2013-07-20T10:03:09.997 に答える
0

次のように使用eachappend selectます。

$.each(data.Destinations, function(i, v) {
    $('#destinations').append('<option value="' + v.destinationID + '">' + v.destinationName + '</option>');
});

jsフィドル

更新された例 ( http://jonathangatenby.co.uk/Candidate/json/destinations.jsonの test.html )

<select id="destinations">
    <option value="">Select</option>
</select>
<a href="#" id="fetch">Fetch JSON</a>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $('#fetch').click(function() {
        $.post('http://jonathangatenby.co.uk/Candidate/json/destinations.json', {}, function(data) {
            $.each(data.Destinations, function(i, v) {
                $('#destinations').append('<option value="' + v.destinationID + '">' + v.destinationName + '</option>');
            });
        });
    });
});
</script>

動作する例は、html ファイルまたは作成元のファイルがajax call同じドメイン (jonathangatenby.co.uk) にあることを確認します。

于 2013-07-20T10:09:39.410 に答える