0

当用户单击链接时,我正在尝试从 PHP 页面加载内容:

用户可以点击链接获取文件中的AJAX数据:message.php

我目前有这个代码message.php

            $('#pmid<?php echo $convoData['id']; ?>').click(function(){
                  $.ajax({
                    type:"GET", //this is the default
                    url: "/index.php?i=pm&p=rr",
                    data: {id:"<?php echo $convoData['id']; ?>"}
                  })
                  .done(function( stuff ) {
                  $( "#name" ).html( stuff ); 
                  $( "#post" ).html( otherstuff );
                  $( "")
                  });
              });

和 HTML:

    Chat with <span id="name"></span> //The $name should be added to here
    <ul id="post"></ul> //The $post should be added to here

AJAX 从中获取数据的页面被命名为:get.php,它看起来像这样:

    $id = $_GET['id'];
    $get=mysql_query("SELECT * FROM private_messages WHERE id='$id'");
    $getData=mysql_fetch_assoc($get);


    //Set the variables that needs to be send back to the other page.
    $getUser=$user->getUserData($getData['sender_id']);


    $name=$getUser['username'];
    $post = '
    <li>
      <img width="30" height="30" src="images/avatar-male.jpg">
      <div class="bubble">
        <a class="user-name" href="">'.$name.'</a>
        <p class="message">
          '.$getData['subject'].'
        </p>
        <p class="time">

        </p>
      </div>
    </li>
    ';
echo $name;
echo $post;

所以,问题是目前所有的数据都只是打印在#name

我该怎么做才能$name将遗嘱打印在#name里面?$post#post

4

3 回答 3

0

尝试像这样返回它:

$output = array();
$output['name'] = $name;
$output['post'] = $post;
$output = json_encode($output);
echo json_encode($output); exit;

然后在 js 中返回 try :

function(data){
     $( "#name" ).html( data.name ); 
     $( "#post" ).html( data.post );
}
于 2013-10-24T10:40:15.730 回答
0

我会使用 json 来传递两个变量:

JS:

$('#pmid<?php echo $convoData['id']; ?>').click(function(){
                  $.ajax({
                    type:"GET", //this is the default
                    url: "/index.php?i=pm&p=rr",
                    data: {id:"<?php echo $convoData['id']; ?>",},
                    dataType: 'json'
                  })
                  .done(function( stuff ) {
                  $( "#name" ).html( stuff[0] ); 
                  $( "#post" ).html( stuff[1] );
                  $( "")
                  });
              });

PHP:

echo json_encode(array($name,$post));
于 2013-10-24T10:35:02.200 回答
0

将输出作为带有两个键的 json 编码数组返回,并在响应中显示基于这样的键的值

在你的 php

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

在阿贾克斯

$.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.post);
       }
     }
});
于 2013-10-24T10:36:04.070 回答