请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 5635|回复: 6

spurl 在 jquery miniui 中无法使用,求解决办法

  [复制链接]
发表于 2012-12-21 22:49:45 | 显示全部楼层 |阅读模式
简单的说就是在用 mini.open 打开一个 Window 时,写在Window.html里面的诸如 {spUrl c=main a=login}这样的代码无法解析,请问有什么解决方法没有?
发表于 2012-12-21 23:19:33 | 显示全部楼层
这里 http://www.speedphp.com/thread-3738-1-1.html

jQuery中的get是直接可以用spUrl的,不太清楚你说的是什么
 楼主| 发表于 2012-12-22 00:42:10 | 显示全部楼层
用语言描述确实比较难,我先贴张图

wenti.jpg

图里面的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:46:58 | 显示全部楼层
我估计可能 window.html 不能解析 smarty 代码 ? 所以无法将 spUrl 的内容转变成 /www/qa/index.php?c=main&a=index这样的字符串吧 ?
发表于 2012-12-22 09:00:16 | 显示全部楼层
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 14:18:50 | 显示全部楼层
jake说的极是,index.html 这些都是模版,php 和 html 还是通过sp框架分离的,多谢jake解答
发表于 2017-9-9 20:08:13 | 显示全部楼层
可以解析的我经常用,我发一个例子你看看
<script>
        function chajiang()
        {var str='<{$ca}>';
        var jiang=$("#jiang").val();
        //alert(str);
        //alert(jiang);
         $.ajax({
                        type:"POST",
                    url:"<{spUrl c=main a=jiang}>",
                    data:"&ca=" + str  + "&jiang=" + jiang,
                    success:function(ok) {
                     //alert(ok);
                      if(ok==1)
              {
                alert('恭喜您中奖了');
               return false;
              }
              else if(ok==2)
              {
                alert('对不起未中奖');
               
                return false;
              }
              
                      }
              });
       
       
        }
        </script>
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2019-11-22 00:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表