1

我有这个 PHP 数组:

Array
(
    [messages] => Array
        (
            [0] => Array
                (
                    [sender] => 17
                    [receiver] => 4
                    [message] => TEST 2
                    [timestamp] => 1367200891
                    [read] => 0
                )

            [1] => Array
                (
                    [sender] => 17
                    [receiver] => 4
                    [message] => TEST 1
                    [timestamp] => 1367197661
                    [read] => 0
                )

        )

    [new_messages] => 2
)

它通过 Ajax 请求检索,json_encode()用于在 PHP 中输​​出。

function getMessages(rec){
var nmsg = $.ajax({
        type: "GET",
        async: true,
        url: "/ps/getUserMessages.php",
        data: {'u':rec,'s00':s00,'n01':n01,'t02':t02}       
    });
    nmsg.done(function(data) {
        var json = JSON.parse(data);
        if (typeof json.messages[0].message !== 'undefined') {
            printMessage(json);
        }
    }); 
}

例如,作为printMessage()功能,我需要执行以下操作:

loop(){
    $("#elem").append(
          '<div>Sender: '+arrayOfValues.sender+'</div>'
         +'<div>Message: '+arrayOfValues.message+'</div>'
    );
}

对于每个值数组。

我尝试了 jQuery $.each(),还尝试for()了一些我找到的示例,但我无法开始工作。

4

2 回答 2

3

如果你想迭代给定的结构,你应该使用以下作为printMessage

function printMessage( json ){
    for ( var i in json.messages ) {
        var currentMessage = json.messages[i];

        $("#elem").append(
          '<div>Sender: '+currentMessage.sender+'</div>'
         +'<div>Message: '+currentMessage.message+'</div>'
        );
    }

}
于 2013-04-30T07:22:07.397 回答
0

像这样的东西应该工作:

function printMessage(data) {
  for( var i=0; i<data.messages.length; i++ ) {
    $("#elem").append(
        '<div>Sender: ' + data.messages[i].sender + '</div>'
       +'<div>Message: ' + data.messages[i].message+ '</div>'
    );
  }
}
于 2013-04-30T07:22:26.740 回答