从Entity检索数据并使用解析JSON来读取数据

时间:2016-11-07 15:28:58

标签: jquery json parsing symfony

我有一个小问题,已经成为***中的一大难题,所以我有一个post方法将Jquery AJAX用于我的实体,其中一个帖子数据然后在实体中搜索,如果有一个值。如果有值,则应在文本字段中显示该值。第一部分完成,所以我可以显示实体的价值,但问题是我无法弄明白我如何才能只显示价值的描述。 例如:

[{“id”:1,“nC”:“31261”,“description”:“05P SUBD”}] 这是我如何得到我的价值,我只想在文本字段中显示描述。

Controller的代码:

/**
 * @Route("/AjaxSearch", name="Search_HomePage")
 *
 * @return JsonResponse|\Symfony\Component\HttpFoundation\Response
 */
public function AjaxSearchAction(Request $request)
{
   if ($request->isXmlHttpRequest()) {


       $name = $request->request->get('person_name');
       /** @var EntityRepository $repository */
       $repository = $this->getDoctrine()->getRepository('AppBundle:Connectors');
       $qb = $repository->createQueryBuilder('contacts')

           ->where('contacts.nC = :param' )
           ->setParameter('param',$name);
       $Data = $qb->getQuery()->getArrayResult();
       echo json_encode($Data);   return $this->render('MyIndex/Manufacturer_LIST.html.twig');
}

HTML:

  <div class="response_wrapper">
    <textarea id="resposeText"></textarea>
</div>

这是我的java脚本:

$(document).ready(
            function ()
            {
             $('#call_back_btn' ).click(function() {
                 $.post("/app_dev.php/AjaxSearch" ,
                     {
                     person_name:$('#input_text').val()
                     } ,
                     function (data)
                     {

                         var obj = JSON.parse(data);
                            console.log(obj);
                         document.getElementById('#demo').innerHTML =
                             obj.id + "<br>" +
                             obj.nC;



                     $('#resposeText').html(obj);

                     }
                 );
             })
            }
        );

我已经尝试了一些在这里得到解答的例子,但没有成功,所以有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我认为它会帮助你。

$('#resposeText').html(obj[0].description);

答案 1 :(得分:0)

问题是:来自控制器的返回数据未正确发送。正确的方法是:

return new JsonResponse(json_encode($Data));

和JS

 function (data)
                     {
                         console.log(data);
                          var obj =  JSON.parse(data);
                         console.log(obj);

                     $('#resposeText').val(obj[1].description);