我的 Twig 中有一个小的 html 表单,可以帮助我过滤结果,我希望当用户添加一个值作为示例 foo
并提交时,它会保留他/她的值页面刷新后刚进入。
我一直在搜索,但找不到可以让它发挥作用的东西,或者我做得非常糟糕。 我现在唯一的解决方案是在 JS 中完成。
我会告诉你我的代码
我的表格在我的 Twig 上
<form action="{{ path('st_backoffice_commerce_offre') }}" method="get">
<input name="filter" type="text" value="" id=userInput">
<button type="submit" class="btn btn-default">Filtrer</button>
</form>
我的 Controller ,我在其中设置了 filter
变量
private function resultsAction(Request $request, User $user, $type, $archive)
{
$em = $this->getDoctrine()->getManager();
$paginator = $this->get('knp_paginator');
$filter = $request->query->get('filter');
$qb = $em->getRepository("STUserBundle:Operation")->getQueryByTypeAndPro($type, $user, $archive, $filter);
$results = $paginator->paginate(
$qb,
$request->query->get('page',1),
$request->query->get('limit',50),
[
'defaultSortFieldName' => 'opn.dateCreation',
'defaultSortDirection' => 'desc'
]
);
return array("results" => $results, "archive" => $archive);
}
public function offreAction(Request $request, User $user, $archive = false)
{
return $this->resultsAction($request, $user, Operation::OFFRE_COMMERCIALE, $archive);
}
和我找到的 JS 代码,试图让它工作
var $userInput;
$("filter").on("change", function(){
$userInput = $("filter").val();
});
我也尝试过将 PHP 代码写入 twig,但是....这不是一个好主意,因为我无法让它工作。 所以我遇到了一个相当简单的问题,但在刷新 twig 后无法真正实现我的输入。
最佳答案
您可以根据文档通过 Twig 访问请求对象:https://symfony.com/doc/current/reference/twig_reference.html#app
也许你可以试试这个:
<input name="filter" type="text" value="{{ app.request.query.get('filter') }}" id=userInput">
关于javascript - 提交后将值保留在输入表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46296711/