TP 框架中的一段字符串拼接问题

clipboard.png

clipboard.png

clipboard.png

如图,各位大神 帮我看看到底咋回事啊,怎么拼接都不对呢,我感觉我这样拼接应该对的呀,为毛浏览器解析出一堆乱码呢(图三没有加红框的是转换成php的语句)

把 + 改成 . 后

clipboard.png

clipboard.png

阅读 4.3k
5 个回答

首先你要弄清楚渲染的先后顺序,php会先解析成html,然后返回给浏览器进行dom渲染操作,tp模板在解析成html时,你的'+datalist[index].o_id+'会被当做id这个参数的value,会转成html实体,返回给浏览器后,根本就不认识了,所以就会出现你这种情况,正确做法是,不要在js for循环里参杂tp的模板函数,js将值写在html里,再通过js异步操作,或者

'<a href="{:U("a/b?id=")} '+datalist[index].o_id+'">'

你写的是js?js + 是连接符
如果是php . 才是连接符

js 和 php 语法你已经分不清了是吧
你应该这样写,"{:U('Cart/topay')}" + js参数

{:U('Cart/topay')} 页面会被渲染 成 /index.php/Mobile/Cart/topay
{:U('Cart/topay?id='.data.')} 这样写 渲染的时候用 php 语法无法识别,就会被渲染成为你截图的那样,因为它把你写的识别为 url 地址,url 不识别 [] 这种 机会渲染为 %5B %5D ,
应该 这样写 href="{:U('Cart/topay')}?id="+datalist[index].o_id+"

你这看起来不像PHP代码呀

推荐问题