我用Ajax Search从主控制器中删除了所有逻辑,将它放在一个自定义控制器中并在我的模板中渲染它:
{{render(controller('MainBundle:SearchCertificate:searchCertificate'))}}
但是Ajax不起作用。
我的symfony工具栏中有一个Ajax请求(提交表单时),如下所示:
POST xhr 200 /app_dev.php/main/order/create 820ms 14f184
我设置断点(在PHP代码中),但PHPStorm跳过它们(没有结果)。
答案 0 :(得分:0)
我找到了答案,我忘了为我的新控制器创建路由。
并在Ajax(url: "{{ path('app.admin.search.certificate')}}"
)
路由器:
app.admin.search.certificate:
path: /admin/serach-certificate
defaults: { _controller: MainBundle:SearchCertificate:searchCertificate }
AJAX:
$.ajax({
type: "POST",
url: "{{ path('app.admin.search.certificate')}}",
dataType: 'json',
data: $('#form_search_certificate').serialize(),
success: function (data) {
$("#search_result").empty();
var dataParse = JSON.parse(data.result_search);
if (dataParse.length !== 0) {
for (var i = 0; i < dataParse.length; i++) {
$.tmpl(template, {
"id": dataParse[i].id,
"dpId": dataParse[i].dp_id,
"name": dataParse[i].name,
"price": dataParse[i].price,
"discount": dataParse[i].discount.value,
"description": dataParse[i].description,
"image": dataParse[i].image,
"companyName": dataParse[i].company.name,
"categoryName": dataParse[i].category.name,
"cart_id": data.cart_id
}).appendTo("#search_result");
}
} else {
$.tmpl(empty, {}).appendTo("#search_result");
}
}});