user3189734
user3189734

Reputation: 665

Json result only returning 1 row

For some reason my function only spits out 1 row from my json data. How can I make this loop? I'm sure I'm missing something simple!

JSON

[
    {"id":"3","job_title":"Aircraft Technician","job_description":"","job_qualifications":null,"created_at":"2014-06-02 18:00:32","updated_at":"2014-06-02 18:00:32","industries":"","division_id":"3","industry_job_id":"3"},
    {"id":"4","job_title":"Aircraft Technician 2","job_description":"","job_qualifications":null,"created_at":"2014-06-02 18:18:57","updated_at":"2014-06-02 18:18:57","industries":"","division_id":"3","industry_job_id":"4"}
]

JQUERY

function getIndustryJobs(data_id, data_option){       
    // alert("data-id:"+data_id+", data-option:"+data_option);
    $.getJSON("{{{ Config::get('app.url') }}}/data/json/"+data_id, function(data) {
        $('#roleList').empty();                                                              
        $.each(data, function(key, val){              
            $('#roleList').append('<option value=' + val.id + '>' + val.job_title + '</option>');
            $('#roleList').listview('refresh');
        });

    });
}

HTML

  <select id="roleList" name="roleList" multiple="multiple"></select> 

Upvotes: 0

Views: 193

Answers (2)

PeterKA
PeterKA

Reputation: 24638

Quite likely, it is because you're requesting one row, as I can guess from the URL: .../data/json/"+data_id. Which means if you request for all the rows, your code should work fine. The rest of your code looks good, except for the refresh which should be outside the loop as @AnoopJoshi correctly said:

function getIndustryJobs(data_option){       
    $.getJSON("{{{ Config::get('app.url') }}}/data/json", function(data) {
        $('#roleList').empty();                                                              
        $.each(data, function(key, val){              
            $('#roleList').append('<option value=' + val.id + '>' + val.job_title + '</option>');
        });
        $('#roleList').listview('refresh');

    });
}

Upvotes: 3

Vincent
Vincent

Reputation: 81

Please try this ,it's work, I tired

    <script>
        $(document).ready(function () {
            var data = JSON.parse('[{"id":"3","job_title":"Aircraft Technician","job_description":"","job_qualifications":null,"created_at":"2014-06-02 18:00:32","updated_at":"2014-06-02 18:00:32","industries":"","division_id":"3","industry_job_id":"3"},{"id":"4","job_title":"Aircraft Technician 2","job_description":"","job_qualifications":null,"created_at":"2014-06-02 18:18:57","updated_at":"2014-06-02 18:18:57","industries":"","division_id":"3","industry_job_id":"4"}]');
            $(data).each(function () {
                $('#roleList').append('<option>' + this.id + this.job_title + '</option>');
            });
        });
    </script>

Upvotes: 0

Related Questions