![](/img/trans.png)
[英]Sending json data via post .ajax() and also receiving a json response
[英]Display json response on ajax call via POST
我试图通过JSON使用ajax显示一些数据,但出于某种原因,当我提交表单我没有得到任何结果,任何建议?..
project_view.php
<form id="formProjectsRepSearch" action="controller.php" method="post" onsubmit="searchFormProjectsRep();
return false">
<label>Project Name </label>
<input name="terbusqueda" id="term" type="text">
<button id="btnBuscar">Search</button>
<input type="hidden" name="search" value="go">
</form>
<div id="ajaxProjectsRep">
</div>
Controller.php这样
if (isset($_POST["search"]) && $_POST["search"] == "go"){
$name = $_POST['terbusqueda'];
$project = new Project();
$pro = $project->get_project($name);
$serv = $project->get_project_service_by_id($pro);
echo json_encode($serv);
}
require_once("../views/project_view.php");
JS
function searchFormProjectsRep() {
var $form = $('#formProjectsRepSearch');
$.ajax({
url: $form.attr('action'),
data: $form.serialize(),
type:'POST',
success: function (resp) {
var resp_object = $.parseJSON(resp);
$("#ajaxProjectsRep").html(resp_object.service);
},
dataType: "json"
});
}
您在代码中解析JSON两次。
当$.ajax()
与dataType: "json"
,jQuery会自动解析响应字符串,所以在你的情况下resp
是一个Javascript对象。 由于resp
是一个对象而$.parseJSON()
需要一个字符串,因此resp_object
为null。 尝试直接使用resp,它应该工作。
您可以使用console.log(resp)
查看PHP脚本返回的实际结果。
(另外,我看到你正在使用.html()
将响应转换为HTML元素,在这种情况下,你可以将dataType: "html"
传递给$.ajax()
而resp
将会是一个jQuery节点,但那不是这里有问题。)
你现在在ajax调用之后将你的数据编码为JSON格式的jj形式你必须解析它以显示你的html元素。下面是代码如何解析它。 首先将对象形式的所有数据显示到浏览器控制台中,然后它将显示time_in值!
var data = JSON.parse(responce); console.log(data[0]); // wholeobject time_in = console.log(data[0].time_in);//only one field
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.