jQuery,JSON和PHP

ei.*_*ken 0 php jquery json

HeyHo,

我在以下网站输入名称,并使用按钮提交此名称.

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>
Run Code Online (Sandbox Code Playgroud)

如果我点击按钮,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);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我的PHP脚本创建响应并将其编码为JSON数组.

PHP代码:

<?php

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

当我运行我的代码时,只会alert(data['hello']);弹出而alert(json.hello);不会弹出.我究竟做错了什么?

干杯ei.schinken

N.B*_*.B. 5

var json = $.parseJSON(data); 不是必要的.

dataType$.ajax已设置属性json,因此任何响应都将被解释为json.

使用 alert(data.hello);