0
我会尽力解释我的问题。我有一个实体与另外两个具有多对多关系的实体结合在一起。我想要实现的是使用ajax post方法进行搜索,并接收连接表中连接的所有可能的组合。从Ajax发布请求中接收空对象
我真正的问题是,只有当我在第一个实体中搜索时,我才会收到有效的回调数据。
控制器:
if ($request->isXmlHttpRequest()) {
$name = $request->request->get('person_name');
/** @var EntityRepository $repository */
$repository = $this->getDoctrine()->getManager()->getRepository('AppBundle:Connectors');
$qb = $repository->createQueryBuilder('connectors')
->leftJoin('connectors.contacts', 'contacts')
->leftJoin('contacts.cables', 'cables');
$qb->where('connectors.description LIKE :param');
$qb->setParameter('param','%'.$name.'%');
$connectors = [];
$contacts = [];
$cables = [];
foreach ($qb->getQuery()->getResult() as $connector) {
$connectors[] = $connector;
foreach ($connector->getContacts() as $contact) {
$contacts[] = $contact;
foreach ($contact->getCable() as $cable) {
$cables[] = $cable;
}
}
}
// $Data = $qb->getQuery()->getArrayResult();
return new JsonResponse(json_encode($contacts));
}
在这一点上,我想送$触点阵列我收到的是空(NULL),但更有趣的是[{},{},{},{},{ }]花括号的数量与我想要接收的联系数量相同!
如果注释行未被注释并且$ Data作为响应发送,则没有问题。
的JS
$('#call_back_btn').click(function() {
$.post("/app_dev.php/AjaxSearch" ,
{
person_name:$('#input_text').val()
} ,
function (data)
{
console.log(data);
var obj = JSON.parse(data);
console.log(obj);
// for (var key in data)
// {
// if(data.hasOwnProperty(key)){
// console.log(data);
// }
// }
$('#resposeText').val(obj[1].description);
}
);
})
}
);
我会感激你的帮助
这里是我的控制台输出:
你要呼应出你想要返回的数据。@ Metio_1993 –
即使我附和数据,没有什么发生 –
您是否观看过浏览器的开发人员工具中的AJAX请求/响应?你有没有在项目中包含jQuery库?是否有任何错误报告?你在网络服务器上运行这个吗? –