query->g-6ren">
gpt4 book ai didi

javascript - Symfony:通过 GET 将变量从 Ajax 发送到处理程序

转载 作者:行者123 更新时间:2023-11-30 00:12:25 25 4
gpt4 key购买 nike

我想在我的 Symfony3.0.3 项目中使用 AJAX。通信有效,但我无法从 JS 获取变量到处理程序。在 JS 的方向处理程序中,它工作正常。

我尝试使用 "$request->query->get('id'))" 从请求中获取变量,但我只得到“空”。

以另一种方式,我尝试使用 URL 中的变量,但出现此错误:

"An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("id") to generate a URL for route "admin_ajax".") in CommonBundle:Default:index.html.twig at line 421."

我不介意使用一个或另一个解决方案(我会根据您的建议使用最好的解决方案),但我仍然想要这两个错误的解决方案。

JS

function selectClient(idClient)//idClient = 1
{
alert(idClient);
$.post('{{path('admin_ajax')}}',{idClient: id},
function(response)
{
if(response.code == 100 && response.success)
{
alert(response.id);//Show null if using $request->query->get('id')) in handler but should be 1
}}, "json");
}

路由:

admin_ajax:
defaults: { _controller: CommonBundle:Default:getClient }
path: /ajax/{id}

处理程序:

public function getClientAction($id)
{
$request = $this->container->get('request_stack')->getCurrentRequest();
$isAjax = $request->isXMLHttpRequest();
if ($isAjax)
{
$response = array("code" => 100, "success" => true, "id" => $request->query->get('id'));
return new Response(json_encode($response));
}
$response = array("code" => 0, "success" => false);
return new Response(json_encode($response));
}

编辑:感谢 Rim 和 Rvanlaak 的回答,我使用了 FOSJsRoutingBundle .

JS

function selectClient(idClient)
{
$.get(Routing.generate('ajax_getclient', { id:idClient }),
function(response)
{
if(response.code == 100 && response.success)
{
alert(response.id);
}
else
}, "json");
}

路由:

ajax_getclient:
defaults: { _controller: CommonBundle:Default:getClient }
path: /ajax/{id}
options:
expose: true

Note that the option "expose: true" was necessary to works.

最佳答案

那是因为 twig 在 javascript 之前执行,所以他没有重新调整客户端 id 参数

我遇到了同样的问题并使用 FOSJSRoutingBundle 解决了这个问题,请参阅这篇文章:

Ajax url parametetr using Twig path

关于javascript - Symfony:通过 GET 将变量从 Ajax 发送到处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35914432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com