-1

JSONを使用してwhileループからデータを出力するにはどうすればよいですか?

現在、私はこれを持っていますmessage.php

        <script type="text/javascript">
        $('#pmid<?php echo $convoData['id']; ?>').click(function(){
            $.ajax({
                 type:"GET",
                 url: "/index.php?i=pm&p=rr",
                 dataType:'json',
                 data: {id:"<?php echo $convoData['id']; ?>"},
                 success : function(res){
                   if(res){
                    $( "#name").html(res.name); 
                    $( "#post").html(res.response);
                   }
                 }
            });
          });

        </script>
<span id="name"></span>
                <ul id="post">

                </ul>

そしてget.phpファイルには、これがあります:

$name=$getUser['username'];



while($postData=mysql_fetch_assoc($postsql)){
 $post = '<li>
   <img width="30" height="30" src="images/avatar-male.jpg">
   <div class="bubble">
     <a class="user-name" href="">123</a>
     <p class="message">
       '.$postData['text'].'
     </p>
     <p class="time">

     </p>
   </div>
 </li>';
}

$arrRet = array();
$arrRet['name'] = $name;
$arrRet['post'] = $post;
echo json_encode($arrRet); 
die();

これまでのところ、 $name 値は機能しています。に印刷できます#name。$post while ループを出力する方法がわかりません#post

4

1 に答える 1

0

MySQLの結果を配列に追加してから、これでjsonを作成する必要があります

次に、JavaScript コードで for/foreach ループを使用してデータ (投稿) を出力します。

あなたGet.php はこのようにする必要があります:

$name=$getUser['username'];

$result = array();

while($postData=mysql_fetch_assoc($postsql)){
    $result[] = $postData['text'];
}

$arrRet = array();
$arrRet['name'] = $name;
$arrRet['post'] = $result;
echo json_encode($arrRet);
die();

message.php:

        <script type="text/javascript">
        $('#pmid<?php echo $convoData['id']; ?>').click(function(){
            $.ajax({
                 type:"GET",
                 url: "/index.php?i=pm&p=rr",
                 dataType:'json',
                 data: {id:"<?php echo $convoData['id']; ?>"},
                 success : function(res){
                   if(res){
                    $( "#name").html(res.name); 
                    var posts = res.post;

                    for(var i in posts)
                    {
                        var post = '<li><img width="30" height="30" src="images/avatar-male.jpg"><div class="bubble">
                                    <a class="user-name" href="">123</a><p class="message">'
                                    + posts[i] +
                                    '</p><p class="time"></p></div></li>';
                        $( "#post").append(post);
                    }

                   }
                 }
            });
          });

        </script>
<span id="name"></span>
      <ul id="post">

      </ul>

幸運を

于 2013-10-24T13:08:56.060 に答える