2

次の形式でjsonを取得できます

[{"data":{"id":"1","user_name":"StudentA","book":"123","role":"Student"}},
{"data":{"id":"3","user_name":"StudentB","book":"456","role":"Student"}}]

データを使用して、下の画像のように表示するにはどうすればよいですか。最初の行はユーザー名で、2 行目は本です

データを使用して、下の画像のように表示するにはどうすればよいですか。最初の行はユーザー名で、2 行目は本です

<button type="button" id="test">Test 123</button>

 <ul id="studentList" data-role="listview" data-filter="true"></ul>

var serviceURL = "http://mydomain.com/";
var students;

    $("#test").click(function()
    {   
        getStudentList();
    });
function getStudentList() {
    $.getJSON(serviceURL + 'getStudents.php', function(data) {
        $('#studentList li').remove();
        students = data.user_name;
        $.each(students, function(index, student) {
            $('#studentList').append('<li>' +
                    '<h4>' + student.user_name + ' ' + student.password + '</h4>' +
                    '<p>' + student.user_name + '</p>' +
                    '</li>');
        });
        $('#studentList').listview('refresh');
    });
}

上記のコードが正しいかどうか尋ねてもよろしいですか?

4

2 に答える 2

1

私はあなたの入力に基づいてそのようにしました。それをコードに含めるだけです。JSON入力に本が含まれていないため、「2行目は本」の意味がわかりません+入力にも存在しない「student.data.password」にアクセスしようとしています。jsFiddle の簡易バージョンhttp://jsfiddle.net/2KMd9/

var json =[{"data":{"id":"1","user_name":"StudentA","book":"123","role":"Student"}},
    {"data":{"id":"3","user_name":"StudentB","book":"456","role":"Student"}}];


    var students = json;
    $.each(students, function(index, student) {
        $('#studentList').append('<li>' +
                '<h4>' + student.data.user_name + '</h4>' +
                '<p>' + student.data.role + '</p>' +
                '</li>');
    });

だからあなたのニーズのために:

function getStudentList() {
    $.getJSON(serviceURL + 'getStudents.php', function(data) {
        $('#studentList li').remove();

        $.each(data, function(index, student) {
                $('#studentList').append('<li>' +
                '<h4>' + student.data.user_name + '</h4>' +
                '<p>' + student.data.role + '</p>' +
                '</li>');
        });
        $('#studentList').listview('refresh');
    });
}
于 2013-03-17T16:57:20.260 に答える
1

応答に名前を付けています..data応答は配列にあるため、最初[]にループする必要がありますdata..データであるオブジェクトを再度取得します..

[{"data":{"id":"1","user_name":"StudentA","book":"123","role":"Student"}},
//-^^^^---here

ループ内で対応する名前とパスワードオブジェクトを取得します....演算子でそれを取得できます..ループ内で、student.data.user_nameユーザー名をstudent.data.book提供し、本などを他の人に提供します...

これを試して...

$.getJSON(serviceURL + 'getStudents.php', function(data) {
    $('#studentList li').remove();
  //students = data.user_name;
    $.each(data, function(index, student) {
        $('#studentList').append('<li>' +
                '<h4>' + student.data.user_name +'</h4>' +  //here get username
                '<p>' + student.data.book + '</p>' +   //here get book
                '</li>');
    });
    $('#studentList').listview('refresh');
});
于 2013-03-17T16:53:50.743 に答える