这是1.php页面<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
      type: "GET",
      url: "2.php",
      data: {id:"123456"},
      dataType: "json",
       success: function(msg)
       {  
      $("#returncontent").html(msg);
   } 
});
});
});
</script>
<div id="returncontent">这是要显示的地方</div>
<button type="button">按钮</button>这是2.php页面
<?php
echo "1111";
?>
这样是可以正常显示,但如果我把1.php$("#returncontent").html(msg);
改成$("#returncontent").html(msg.message);
那么我在2.php应该如何来写才能返回给1.php,我试过用echo "{\"message\":".$_GET['id']."}";的返回id值,但如果我想写成echo "{\"message\":"<div><input type='submit' name='submit' value='提交'></div>";却老是没有显示!!麻烦求教,新手!!!

解决方案 »

  1.   

    echo "{\"message\":"<div><input type='submit' name='submit' value='提交'></div>";
    有语法错误。
    你的交互方式采用json,即可以用 json_encode() 来输出JSON格式文本
    <?php
    $data = array(
        'message' => "<div><input type='submit' name='submit' value='提交'></div>"
    );
    echo json_encode($data);
      

  2.   

    谢谢了,这样是可以,但是如果我在这个页面上如果有其他输出的话就又不行了,比如我在后面加上echo "111";
    1.php的页面就接收不到返回值了,这是什么情况!第一次用所以真的是一头雾水,还麻烦指教下,谢谢!!
      

  3.   

    $result = array(
        'content' => '具体的内容',
        'message' => 'XX成功',
        'statu' => 1,
    );==========
    JS我一般这样
    $.post('2.php', {id:123456}, function(data){
        if(data.message)alert(data.message);
        if(data.statu==0)return;
        $('#XXXXX').html(data.content);
        //...更多处理操作a
    });
      

  4.   

    1.php页面
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("button").click(function(){
    $.ajax({
          type: "GET",
          url: "2.php",
          data: {id:"123456"},
          dataType: "json",
           success: function(msg)
           {  
          $("#returncontent").html(msg.message);
          $("#returncontent1").html(msg.message1);
          $("#returncontent2").html(msg.message2);
       } 
    });
    });
    });
    </script>
    <div id="returncontent">这是message要显示的地方</div>
    <div id="returncontent1">这是message1要显示的地方</div>
    <div id="returncontent2">这是message2要显示的地方</div>
    <button type="button">按钮</button>
    2.php<?php
    $data = array(
        'message' => "<div><input type='submit' name='submit' value='提交'></div>",
        'message1' => "<div><input type='reset' name='submit' value='重置'></div>",
        'message2' => "<div><input type='submit' name='submit' value='返回'></div>"
    );
    echo json_encode($data);
    ?>
    <!-- 如果我不加入下面的语句就可以返回,但是因为这个页面是需要进行其他操作的,加上下面的代码后就不能返回了 -->
    <?php
    echo "111"; 
    ?>
    因为2.php这个页面我还想通过get传递过来的id进行其他操作,但是现在只要我加入任何东西就都不能返回值,麻烦教我下,谢谢了!!!
      

  5.   

    1、在 IE 系列的浏览器中测试时,要注意清除缓存
    2、2.php中的所有可能的输出都要放在一个数组内
    输出时用 
    echo json_encode($array);注意:由于 json_encode 只支持 utf-8 编码的中文,所以输出中有中文时要注意转码
      

  6.   

    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("button").click(function(){
    $.ajax({
          type: "GET",
          url: "2.php?id=1234",
           success: function(msg)
           {  
          $("#returncontent").html(msg.message);
          $("#returncontent1").html(msg.message1);
          $("#returncontent2").html(msg.message2);
       } 
    });
    });
    });
    </script>
    <div id="returncontent">这是message要显示的地方</div>
    <div id="returncontent1">这是message1要显示的地方</div>
    <div id="returncontent2">这是message2要显示的地方</div>
    <button type="button">按钮</button>然后在PHP里 用$_GET获取
      

  7.   

    echo json_encode($data);echo "111"; 页面返回的文本 是两次echo的相加 那最终数据就不是标准的JSON格式了 那JAVASCRIPT就解析不了 如果页面有其他操作处理的话,一般先处理 处理失败 返回失败的JSON 处理成功返回成功的JSON
      

  8.   

    我的意思是2.php本身除了可以返回值给到1.php。另外2.php自身可以有自己的页面上的其他操作,比如说我会根据传递过来的id值查询对应的信息在2.php的页面上显示,这样有点类似购物车,比如我在产品页面点击加入购物车的按钮,会弹出一个提示框,提示框里面有产品页面通过ajax传递到购物车页面返回来的值,然后购物车页面又可以显示刚才加入的产品信息!这就是我弄这个测试的原因!!但是现在的问题是如果我2.php这个页面只是2345678910111213 <?php $data = array(     'message' => "<div><input type='submit' name='submit' value='提交'></div>",     'message1' => "<div><input type='reset' name='submit' value='重置'></div>",     'message2' => "<div><input type='submit' name='submit' value='返回'></div>"); echo json_encode($data); 这样写就可以返回值,但是如果我2.php页面再下面进行其他操作就没办法返回值了,总是没法显示!- -这是什么原因??
      

  9.   

    2.php 只能返回被 success: function(msg) 处理的正确数据
    在 2.php 中的所有输出都被当做 msg 的,如果出现格式错误就将一事无成
      

  10.   

    楼主,你不能重新写个页面来处理其它问题么?ajax的数据只能用一个页面。还有如果你说用的mvc架构的话,不同的action就可以处理不同的事情了。你那样在同一个页面又是输出json数据,又是输出php的数据,那是不行的
      

  11.   

    你的其它值肯定没有办法输出。因为你的其它值并没有json_encode转换