Fill HTML dropdown box with external JSON file data

后端 未结 4 534
甜味超标
甜味超标 2021-01-27 21:28

I am trying to fill a HTML Dropdown menu with data from an external JSON file, which contains the following

{
    \"Destinations\": [
    {
        \"destinatio         


        
相关标签:
4条回答
  • 2021-01-27 21:43

    Try this code :

    $.getJSON('yourfile.json', function(data) {
        destinations = data['Destinations']
    
        $.each(destinations, function(id, destination) {
            destination = destination["destinationName"]
            alert(destination)
        })
    });
    

    It allows you to get the destination value in the destination variable, for, after, can do everything with values of this variable.

    0 讨论(0)
  • 2021-01-27 21:47

    Consider you have got the response from server like

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

    Then your next step should be iteration of that json

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

    YOu can see the demo here Fiddle Demo

    0 讨论(0)
  • 2021-01-27 22:01

    Use each and append select like this:

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

    jsFiddle

    Updated Example (test.html for http://jonathangatenby.co.uk/Candidate/json/destinations.json)

    <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>
    

    Example to work make sure html file or the file from which you are making the ajax call are on same domain (jonathangatenby.co.uk)

    0 讨论(0)
  • 2021-01-27 22:03

    Create a <select> tag in your html and fill it with <option> using the value attribute. Value will be your destinationID, but it will show destinationName.

    Example

    <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> 
    
    0 讨论(0)
提交回复
热议问题