2012-02-24 43 views
0

HeyHo,jQuery,JSON和PHP

我在以下網站輸入名稱並用按鈕提交此名稱。

HTML代碼:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>AJAX</title> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> 
     <script type="text/javascript" src="js/jquery.js"></script> 
    </head> 
    <body> 
     <div><input type="button" id="ajaxButton" value="start"></div> 
     <div><input type="text" id="name"></div> 
     <div id="content"></div> 
    </body> 
</html> 

如果我按一下按鈕,jQuery的發送AJAX請求到我的PHP腳本,它創建了我的迴應。

jQuery代碼:

$(document).ready(function() { 
    $('#ajaxButton').click(function() { 
     var name = encodeURIComponent($('#name').val()); 
     $.ajax({ 
      url   : "js/script.php", 
      type  : "POST", 
      data  : "name="+name, 
      dataType : "json", 
      success : function (data) { 
       alert(data['hello']); 
       var json = $.parseJSON(data); 
       alert(json.hello); 
       $("#content").html(json.hello); 
      } 
     }); 
    }); 
}); 

我的PHP腳本創建一個響應並將其編碼爲JSON陣列。

PHP代碼:

<?php 

if (isset($_POST['name'])) { 
    $ret = Array("hello" => "Hallo " . $_POST['name']); 
    echo json_encode($ret); 
} 
?> 

當我跑步時我的代碼,只有alert(data['hello']);彈出並alert(json.hello);沒有。我究竟做錯了什麼?

乾杯 ei.schinken

+0

使用data.hello代替json.hello – silly 2012-02-24 09:52:22

回答

5

var json = $.parseJSON(data);時並不需要。

dataType$.ajax的屬性已設置爲json,因此任何響應都將被解釋爲json。

使用alert(data.hello);