2016-11-07 55 views
0

我有一個小問題,這已經成爲***中的一大痛苦,所以我有一個post方法將jquery AJAX用於我的實體,在這裏post數據,然後在實體中搜索是否有值。如果有值,該值應顯示在文本字段中。第一部分完成了,所以我可以顯示實體的價值,但問題是我無法弄清楚如何只顯示值的描述。 例如:從實體中檢索數據並使用解析JSON來讀取數據

[{ 「ID」:1, 「NC」: 「31261」, 「描述」: 「05P SUBD」}] 這裏是我讓我的值,我想只顯示在文本字段中的描述。

代碼中的控制器:

/** 
* @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); 

        } 
       ); 
      }) 
      } 
     ); 

我曾嘗試一些例子,在這裏得到解答,但沒有成功,那麼有人可以幫助我這個。

回答

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); 
0

如果我明白你的問題,我認爲它會幫助你。

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

感謝您的幫助,但我以前不執行任何操作 –