为了账号安全,请及时绑定邮箱和手机立即绑定

twig 模板变量 set 赋值时如何引用 js 函数的返回值?

twig 模板变量 set 赋值时如何引用 js 函数的返回值?

凤凰求蛊 2019-02-26 10:06:13
<script> function test_function(){ var test=self.location.href.indexOf("=");//查看是否包含参数 if(test>0)//存在参数 { var para=self.location.href.substr(test+1); } return para;}</script> <!-- twig --> {% set para_1 = 此处如何得到test_function() 返回值?? %}
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

直接是得不到的

因为模板中的变量要先于JS执行。

这需要你对网页从请求到展示的整个过程有所了解。

要知道,在一个页面上,JS是运行在客户端浏览器上的,而PHP是运行在服务器上的,

而用户在请求一个网页的时候,服务器会先运行PHP,完成之后递交(传递)给用户浏览器,然后浏览器加载这个页面,如果其中有JS代码,则执行它。

那么,如果浏览器想要向服务器递交数据的话,可以使用get或者post传值的方式,一种是表单方式,一种是ajax方式,都有get和post两种,这个需要你更深入地学习一下才行,不是在这里一两句就能讲清楚的。

你的这个问题,也是需要用表单或者是ajax向服务器递交表单的,然后在服务器上,对这个页面进行第二次执行的时候(也就是服务器获取到用户传来的数据之后)才能对这个数据进行处理。

查看完整回答
反对 回复 2019-03-27
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

1)ajax方式,完成之后递交(传递)给用户浏览器。
PHP是运行在服务器上的直接是得不到的,因为模板中的变量要先于JS执行。

2)表单方式,服务器会先运行PHP,可以使用get或者post传值的方式。需要对网页从请求到展示的整个过程有所了解,而用户在请求一个网页的时候,然后浏览器加载这个页面,然后在服务器上,在一个页面上,对这个页面进行第二次执行的时候(也就是服务器获取到用户传来的数据之后)才能对这个数据进行处理,则执行它,不是在这里一两句就能讲清楚的,JS是运行在客户端浏览器上的,如果其中有JS代码,都有get和post两种,也是需要用表单或者是ajax向服务器递交表单的。
script>.href;
}
return para;查看是否包含参数
if(test>
{% set para_1 = 此处如何得到test_function() 返回值;/</.substr(test+1);/script>!-- twig -->

<
function test_function()
{
var test=self?;).location.href;
}
</=".indexOf("存在参数
{
var para=self;0)/.location



查看完整回答
反对 回复 2019-03-27
  • 2 回答
  • 0 关注
  • 813 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信