vis*_*hal 5 php jquery symfony twig
我想将来自 javascript (jquery) 的查询字符串参数附加到 symfony 2 url。我想将选定单选按钮的值传递给 ajax 请求 egin plain php 我会这样做
$(document).ready(function() {
$('.id_radio').click(function() {
$.ajax({
'url': 'example.php?id='+($this).val(),
'success': function(r) {
$('#div1').html(r);
}
});
});
Run Code Online (Sandbox Code Playgroud)
如何在 symfony2 twig 中生成这样的 URL?我们在 symfony 2 twig 中生成 URL,例如
{{ path('example_path', {'id': id}) }} 其中 id 是树枝变量。
我尝试使用 FOSJsRoutingBundle 但不知道它是否是针对同样的问题并且不确定如何使用它?
我在下面尝试过,但它不起作用。
$('.id_radio').click(function() {
alert(Routing.generate('example_path', {
'id': $(this).val()
}));
$.ajax({
'url': Routing.generate('example_path', {
'id': $(this).val()
}),
'success': function(r) {
$('#div1').html(r);
}
});
});
Run Code Online (Sandbox Code Playgroud)
koskoz 在下面提到的解决方案有效,我没有通过 options={"expose"=true} 但在添加后它起作用了。
但还有一个问题。它只在我们不刷新页面之前有效。如果我们刷新页面,它不起作用。为了使它工作,我必须删除 symfony 缓存文件。
如果我们已经在一个浏览器中打开它,它在其他浏览器中不起作用。
代替
/**
* @Route("/example/{name}", name="example_path", options={"expose"=true})
* @Template
*/
public function exampleAction($name)
{
}
Run Code Online (Sandbox Code Playgroud)
并使用 FOSJsRoutingBundle
$('.id_radio').click(function() {
alert(Routing.generate('example_path', {'id': $(this).val()}));
$.ajax({
'url': Routing.generate('example_path', {'id': $(this).val()}),
'success': function(r) {
$('#div1').html(r);
}
});
});
Run Code Online (Sandbox Code Playgroud)
下面对我来说效果更好,
/**
* @Route("/example", name="example_path", options={"expose"=true})
* @Method({"GET"})
* @Template
*/
public function exampleAction()
{
}
$('.id_radio').click(function() {
$.ajax({
'url': '{{ path('example_path') }}',
'data': 'name='+$(this).val(),
'type': 'GET',
'success': function(r) {
$('#div1').html(r);
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18422 次 |
| 最近记录: |