2014-04-27 92 views
1

即時通訊新的這個json和ajax的東西,可以some1幫助我呢?json,如何返回具體的值,而不是對象

MY JS:

 $(document).ready(function(){ 
     $(".testajax").submit(function(){ 


      $.ajax({ 
       type: "POST", 
       url: "controller.php", 
       data: $(".testajax").serialize() 
      }) 
       .done(function(msg){ 
       $(".result").html("name:" + msg.name); 

      });  

      return false; 


     }); 

這就是我的Json

$return= array("name"=>$_POST); 
header('Content-Type: application/json'); 
echo json_encode($return); 

我的HTML

<form method="post" action="controller.php" class="testajax"> 
    <input type="text" name="name" value=""> 
    <button type="submit">SAVE</button> 
</form> 

<p class="result"></p> 

我想做的事情是,當我輸入 「瑪麗亞」 在形式和點擊保存...返回結果...應該是「Maria」。但是,相反我得到的是「名對象」

+0

你的JSON是什麼樣的? –

+0

@LeeTaylor PHP已發佈。 – OptimusCrime

回答

1

在這裏,你將整個POST陣列到name元素:

$return= array("name"=>$_POST); 

所以JSON看起來就像這樣:

{ 
    "name": { 
     "name": "john" 
    } 
} 

利用這一點,你就必須改變JavaScript才能使用msg.name.name

$(".result").html("name:" + msg.name.name); 

您看到Object,因爲默認情況下,json_encode()將關聯數組轉換爲對象($_POST是關聯數組)。它會更有意義,把名字中的name元素,而不是整個POST陣列,像這樣:

$return= array("name"=>$_POST['name']); 

利用這一點,你目前的JavaScript會工作。

+0

我知道禁止說謝謝....但謝謝你的解釋我的問題.... – ridwan

+0

啊,很好的接收。沒有看到那個。 +1 – OptimusCrime

相關問題