我不知道这段代码有什么问题,没有错误,但它不起作用。 我想要的是当我点击一个表格行时,一个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>
- 应选择的表格行
醇>
<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>
- 应显示详细信息的div
醇>
<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>
答案 0 :(得分:0)
detailAjax.html.twig 不是严格的json,但你的回答是json。你必须改变它。
尝试ajax时可以使用浏览器控制台网络部分。此工具中有关于请求的详细信息。