我对这个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;
答案 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将起作用。