json,如何返回特定值而不是对象

时间:2014-04-27 14:24:38

标签: javascript jquery json

我对这个json和ajax的新东西,有些人能帮助我吗?

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>

我想做的是当我输入&#34; Maria&#34;在表单中单击保存...返回结果...应该是&#34; Maria&#34;。但是,我得到的是&#34; name:Object&#34;

1 个答案:

答案 0 :(得分: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将起作用。