<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"type="text/javascript"></script> 
<script type="text/javascript">
$(document).ready(function(){
$('#ffpost').click(function(){
var user = $("#username").val(); 
    $.ajax({
   type: "post",
   cache:false,
   dataType:"json",
   url: "dd.php",
   data: "username =" + user,
   success: function(html){
    $("#results").append(html.username);

   }
});
})
});
</script></head><body>
<div id="results">888</div>
<form > 
    <p><span>输入姓名:</span><input type="text" name="username" id="username" /></p> 
    <p><span>输入密码:</span><input type="text" name="password" id="password" /></p> 
  
  
  
  
  </form>
   
   <input name="" id="ffpost" type="button" /></body>
</html>这是dd.php文件的内容<?php
echo json_encode($_POST);调试了2天了,都不对。 也不知道哪里出错啦, 请帮我看一下

解决方案 »

  1.   

       data: "username =" + user,
    改为
       data: {username : user},
      

  2.   

    这个是写法的问题,,你的  data:"username ="+ user;应该写成 data:"username="+user;
    username后面不能有空格,否则接收不到值
      

  3.   

    不知道是不是你代码问题 
    你要把data:"username ="+ user; 写成 data:"username="+user; 去掉空格试试?
      

  4.   

    dataType:"json",定义为了json格式
    在传参时保证data为json格式,并返回json格式,否则出错
    php页面的json_encode保证参数是个数组传参时可这样
    var myData = {};
        myData.userName = $("#username").val();
    ...
     data: $.toJSON(myData),//调用时这样调用好看,要不然你得拼凑好格式
        
      

  5.   

    你有firebug调试,看到底发送了什么数据和返回了什么数据,调试ajax,要学会用firebug
      

  6.   

    2楼3楼正解,data: "username =" + user, username后面多个空格,导致返回的json数据是:{"username_":"aef"}。所以$("#results").append(html.username);里面的html.username取不到值
      

  7.   

    只有用firebug调试,亲自试过才知道问题的根源!