点击HTML提交按钮时如何通过Twig将输入框内容赋值给变量x
实现方案说明
首先明确核心前提:Twig是服务端模板引擎,所有{% %}标签内的逻辑都会在页面发送到用户浏览器之前就执行完毕,因此无法直接在前端点击按钮时触发Twig的set赋值操作,需根据你的使用场景选择对应方案:
方案1:需要在服务端使用该变量(用于模板渲染、后端逻辑等)
通过表单提交把输入框内容传给后端,后端再把值传递给Twig即可完成赋值:
- 首先补全你的前端表单代码:
<form method="post" action="你的后端处理地址"> <label for="CoARequest"></label> <input type="text" id="CoARequest" name="coa_request" class="form-control"> <button type="submit" class="btn btn-primary">Submit</button> </form>
- 后端接收到
coa_request参数后,将参数传递给Twig模板,之后就可以在Twig中完成赋值:
以PHP为例:
// 后端接收参数 $inputValue = $_POST['coa_request'] ?? ''; // 传递给Twig模板 $twig->render('目标模板.twig', [ 'inputValue' => $inputValue ]);
Twig模板中直接赋值即可:
{% set x = inputValue %}
如果是提交到当前页面,也可以直接在Twig中读取请求参数赋值:
{% if app.request.request.has('coa_request') %} {% set x = app.request.request.get('coa_request') %} {% endif %}
方案2:仅前端逻辑需要使用该变量
如果这个变量不需要参与服务端渲染,直接用JavaScript存储即可,无需调用Twig:
<label for="CoARequest"></label> <input type="text" id="CoARequest" class="form-control"> <button class="btn btn-primary" id="submitBtn">Submit</button> <script> let x = ''; document.getElementById('submitBtn').addEventListener('click', function() { x = document.getElementById('CoARequest').value; // 后续需要用到x的逻辑直接写在这里即可 console.log(x); }) </script>
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

