#1 xgsong
简单的说就是在用 mini.open 打开一个 Window 时,写在Window.html里面的诸如 {spUrl c=main a=login}这样的代码无法解析,请问有什么解决方法没有?
2012-12-21 22:49:45
#2 jake
这里
http://www.speedphp.com/thread-3738-1-1.htmljQuery中的get是直接可以用spUrl的,不太清楚你说的是什么
2012-12-21 23:19:33
#3 xgsong
用语言描述确实比较难,我先贴张图
图里面的spUrl标识都无法解析,这段代码是在window.html里面,然后在index.html里用 miniui 的方法显示此html
mini.parse();
var grid = mini.get("datagrid1");
grid.load();
grid.sortBy("createtime", "desc");
function add() {
mini.open({
url: "./tpl/main/window.html",
title: "新增员工", width: 600, height: 360,
onload: function () {
var iframe = this.getIFrameEl();
var data = { action: "new"};
iframe.contentWindow.SetData(data);
},
ondestroy: function (action) {
grid.reload();
}
});
}
用 mini.open 的方法显示一个窗口,然后就报错了,不知道说清楚没,不太好描述
2012-12-22 00:42:10
#4 xgsong
我估计可能 window.html 不能解析 smarty 代码 ? 所以无法将 spUrl 的内容转变成 /www/qa/index.php?c=main&a=index这样的字符串吧 ?
2012-12-22 00:46:58
#5 jake
1. 不应该直接使用模板,而是要通过display来显示模板,否则模板不会被解析。看看
http://www.speedphp.com/thread-3723-1-1.html 这里理解一下为什么用frameset的时候要做几个action,而不能直接src引用模板。
也就是“./tpl/main/window.html” 这种直接引用模板的方式,只能是PHP执行display的时候使用,其他js或者html都不应该引用。
2. 区分javascript,smarty和html。javascript和html是运行在浏览器,而smarty是运行在服务器端的PHP程序里面,spUrl是smarty的函数,所以也只能在服务器端被解析(也就是要经过PHP才能用)。
3. 你的问题解决的方法也很简单。把引用“./tpl/main/window.html”变成服务器端引用,加一个action,它display这个模板。然后访问这个action就行。
4. 另外注意到你说index.html,你的首页也是html文件? 建议全部都用PHP+模板(HTML文件放tpl通过PHP引用出来)的方式出现,不建议HTML和PHP混搭做站。
2012-12-22 09:00:16
#6 xgsong
jake说的极是,index.html 这些都是模版,php 和 html 还是通过sp框架分离的,多谢jake解答
2012-12-22 14:18:50