ThinkPHP 3.2.3 模板中U方法,怎么传JS变量的参数?

在模板中通过js动态获取到了一个变量,

var nid = "135";
var url = {:U('Home/news',array('pid'=>'nid'))};

这里面的array应该怎么写才能把js获取到的nid写进去呢?

网上都是下面这种说法,但下面这种方法只能传后台传到前台的变量,js变量怎么写呢?

{:U('Index/displaytopics',array('tid'=>$vo['tid']))}

最终,不能从前台传值,只能想了办法,从后台取值,然后assign.

阅读 11.6k
5 个回答

js不能给U赋值,因为在你的js执行之前,里面的变量已经被框架替换了
可以用下面这个替换

__APP__ + '/Home/news?pid='+nid
var nid = "135";
var url = "{:U('Home/news')}?pid="+nid;
var nid = "135";
var url = '{:U("Home/news",array("pid"=>"'+nid+'"))}';
新手上路,请多包涵

$url = "{:U('Package/update')}?pid="+id+"&data="+ JSON.stringify(post_data);

新手上路,请多包涵
var url = "{:U('Home/news?pid=__PID__')}.replace('__PID__',nid);

这样可以不破坏url结构,让 U('') 函数正常生成url

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进