Ajax Jquery与symfony3

时间:2017-03-25 12:04:01

标签: jquery ajax symfony

  

我不知道这段代码有什么问题,没有错误,但它不起作用。   我想要的是当我点击一个表格行时,一个textarea应该出现包含>所有信息[网页] [1]。   *这是twig文件:   1.脚本

<script>
    function detailFunction() {
    $('#ligneSelectionnee').click(function () {

        id=$(this).val();


        $.ajax({
            type:"POST",
            url:'http://localhost/randonneeweb/web/app_dev.php/recDetailAjax',
            dataType:"json",
            data:{id:id},
            success : function (response) {
                if (response!=null){
                    document.getElementById('nothing').style.display="none";
                    document.querySelector("#zoneDetail").innerHTML=response.view;
                }
                else{
                    document.getElementById('nothing').style.display="block";
                }

            }
        })

    })}
</script>
  
      
  1. 应选择的表格行
  2.   
<tbody>
        {% for m in reclamations %}

            <tr id="ligneSelectionnee" value="{{ m.idreclamation }}" onclick="detailFunction()">
                <td> {{ m.dateReclamation|date('Y-m-d') }}</td>
                <td> {{ m.typereclamation }}</td>
                <td> {{ m.sujetreclamation}}</td>
                <td> {{ m.message }}</td>
            </tr>
        {% endfor %}
        </tbody>
  
      
  1. 应显示详细信息的div
  2.   
<div id="zoneDetail" style="margin-right: 20em">

    </div>
  

**这是控制器中的功能:

public function afficherDetailsAction(Request $request)
{echo "hellooo";
    if($request->isXmlHttpRequest())
    {
        $id=$request->get('id');
        $em=$this->getDoctrine()->getManager();
        $reclamations=$em->getRepository('RandoPlusRandoBundle:Reclamation')->findBy(array('idreclamation'=>$id));
        dump($reclamations);
        if($reclamations!=null)
        {
            return new JsonResponse(
            ['view'=>$this->renderView('RandoPlusRandoBundle:Reclamation:detailAjax.html.twig',array('detail'=>$reclamations))],200
            );
        }
    }
    return new Response(null);
}
  

*** Ajax函数的路由:

recDetailAjax:
path:     /recDetailAjax
defaults: { _controller: RandoPlusRandoBundle:Reclamation:afficherDetails }
  

****,最后是Ajax使用的树枝加载细节:

<label>Description</label></br><textarea>Date : {{ detail.dateReclamation }}</br>type:{{ detail.typereclamation }}</br>Sujet:{{ detail.sujetreclamation }}</br>Message:{{ detail.message }}</textarea>

1 个答案:

答案 0 :(得分:0)

detailAjax.html.twig 不是严格的json,但你的回答是json。你必须改变它。

尝试ajax时可以使用浏览器控制台网络部分。此工具中有关于请求的详细信息。