$pageScript = <<<SCR
<script type='text/javascript'>
function (){}
$.ajax()
</script>
SCR;
这种写法,在PHP中定义一段script函数,<<<SCR SCR;是定界符。SCR是随便起的名字,但是定界符的后半截必须顶格写
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
sprintf函数,函数把格式化的字符串写写入一个变量中。也就是说最少要有一个站位字符和替换的变量。第一个参数为字符串,第二个参数就是第一个站位字符的值。。。。%s是指字符串,具体请看w3cschool的手册,直接搜索就有
<{config_load file="site.conf"}>
<script type="text/javascript" src="<{#js_path#}>jquery-1.4.2.min.js"></script>
在TPL中加载配置文件。。。读取配置文件中的函数 <{#js_path#}>
public function pageAction(){
//命令模型层处理数据
$page = isset($_REQUEST['page'])?$_REQUEST['page']:1; //.....若有page的值,则$page=$_REQUEST['page'],没有则$page=1
$pagesize = 2; //定义一页几条记录
$offset = ($page-1)*$pagesize; //计算出偏移量,偏移量是查询数据库是跳过的记录数
$pageModel = new pageModel("localhost","root","","page");
$array = $pageModel ->getPageList($offset,$pagesize); //调用模型层,模型层返回了所有记录和总记录数
$content = $array['list'];
$total = $array['total']; //将模型层返回的赋值给。。。。
//命令视图层显示数据
$this->smarty->assign('list',$content); //赋值。。不解释
$pageHelper = new pageHelper();
$page_html = $pageHelper ->show($total,$pagesize,$page);//调用pageHelper。这个下面细说。。。
$this->smarty->assign('page_html',$page_html); //将pageHelper()返回的东西,赋值给page_html。。。不解释
$this->smarty->display('page.tpl');
}
细细的说下pageHelper.class.php
public function show($total,$pagesize,$page){
$pages = ceil($total/$pagesize);
$info = "总共".$total."条记录 分为".$pages."页 当前第".$page."页";
$first = 1;
$prev = $page-1;
$next = $page+1;
$last = $pages;
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
$prev_html= '';
if($page>1){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'上一页');
}
if($page<$pages){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'下一页');
}
//下拉列表项
$select_html = "<select οnchange='goPage(this.value)'>";
for($i=1;$i<=$pages;$i++){
if($i==$page){
$select_html .= sprintf("<option value='%s' selected>%s</option>",$i,$i);
}else{
$select_html .= sprintf("<option value='%s'>%s</option>",$i,$i);
}
}
$select_html .="</select>";
$last_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$last,'尾页');
$pageScript = <<<SCR
SCR;
return $info.' '.$first_html.' '.$prev_html.' '.$next_html.' '.$last_html.' '.$pageScript.' '.$select_page.' '.$select_html;
}
一点一点看。开始的几个值是从调用函数的时候从函数参数传过来的,$info没啥说的,
下面定义的四个变量是用来区别显示首页,尾页下一页上一页的。。。这个没啥技术含量。想得到就很简单。
那四个变量只是四个页码。要让他可以点还要把它变成连接,所以。。。就有后面这几部了。sprintf()函数,上面说了。至于if括号里的,是保证在第一页的时候不显示首页,。。。之类的。。。。手懒,见谅。哦对了。。。还有<a href='javascript:goPage(%s)'>%s</a>这种写法。。。记住就行了。。。貌似没啥为什么
下拉列表部分:+=的部分知道吧。在PHP中连接符不是+是.所以+=在php中是.=。。。循环通过总页数来输出<option></option>的个数。代码看着抽象,其实最后输出的就是一个下拉菜单。之所以这么麻烦是因为菜单里的值都不是写死的。还有在<select>标签中绑定了一个goPage函数,下面定义的
$pageScript是定义了一个script函数。。。
最后给调用它的控制器,返回一个长长的字符串。。。。。把前面所有的都返回了。至于那个script函数,返回之后再tpl文件中一输出直接就变成函数了
<script type='text/javascript'>
function (){}
$.ajax()
</script>
SCR;
这种写法,在PHP中定义一段script函数,<<<SCR SCR;是定界符。SCR是随便起的名字,但是定界符的后半截必须顶格写
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
sprintf函数,函数把格式化的字符串写写入一个变量中。也就是说最少要有一个站位字符和替换的变量。第一个参数为字符串,第二个参数就是第一个站位字符的值。。。。%s是指字符串,具体请看w3cschool的手册,直接搜索就有
<{config_load file="site.conf"}>
<script type="text/javascript" src="<{#js_path#}>jquery-1.4.2.min.js"></script>
在TPL中加载配置文件。。。读取配置文件中的函数 <{#js_path#}>
public function pageAction(){
//命令模型层处理数据
$page = isset($_REQUEST['page'])?$_REQUEST['page']:1; //.....若有page的值,则$page=$_REQUEST['page'],没有则$page=1
$pagesize = 2; //定义一页几条记录
$offset = ($page-1)*$pagesize; //计算出偏移量,偏移量是查询数据库是跳过的记录数
$pageModel = new pageModel("localhost","root","","page");
$array = $pageModel ->getPageList($offset,$pagesize); //调用模型层,模型层返回了所有记录和总记录数
$content = $array['list'];
$total = $array['total']; //将模型层返回的赋值给。。。。
//命令视图层显示数据
$this->smarty->assign('list',$content); //赋值。。不解释
$pageHelper = new pageHelper();
$page_html = $pageHelper ->show($total,$pagesize,$page);//调用pageHelper。这个下面细说。。。
$this->smarty->assign('page_html',$page_html); //将pageHelper()返回的东西,赋值给page_html。。。不解释
$this->smarty->display('page.tpl');
}
细细的说下pageHelper.class.php
public function show($total,$pagesize,$page){
$pages = ceil($total/$pagesize);
$info = "总共".$total."条记录 分为".$pages."页 当前第".$page."页";
$first = 1;
$prev = $page-1;
$next = $page+1;
$last = $pages;
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
$prev_html= '';
if($page>1){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'上一页');
}
if($page<$pages){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'下一页');
}
//下拉列表项
$select_html = "<select οnchange='goPage(this.value)'>";
for($i=1;$i<=$pages;$i++){
if($i==$page){
$select_html .= sprintf("<option value='%s' selected>%s</option>",$i,$i);
}else{
$select_html .= sprintf("<option value='%s'>%s</option>",$i,$i);
}
}
$select_html .="</select>";
$last_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$last,'尾页');
$pageScript = <<<SCR
SCR;
return $info.' '.$first_html.' '.$prev_html.' '.$next_html.' '.$last_html.' '.$pageScript.' '.$select_page.' '.$select_html;
}
一点一点看。开始的几个值是从调用函数的时候从函数参数传过来的,$info没啥说的,
下面定义的四个变量是用来区别显示首页,尾页下一页上一页的。。。这个没啥技术含量。想得到就很简单。
那四个变量只是四个页码。要让他可以点还要把它变成连接,所以。。。就有后面这几部了。sprintf()函数,上面说了。至于if括号里的,是保证在第一页的时候不显示首页,。。。之类的。。。。手懒,见谅。哦对了。。。还有<a href='javascript:goPage(%s)'>%s</a>这种写法。。。记住就行了。。。貌似没啥为什么
下拉列表部分:+=的部分知道吧。在PHP中连接符不是+是.所以+=在php中是.=。。。循环通过总页数来输出<option></option>的个数。代码看着抽象,其实最后输出的就是一个下拉菜单。之所以这么麻烦是因为菜单里的值都不是写死的。还有在<select>标签中绑定了一个goPage函数,下面定义的
$pageScript是定义了一个script函数。。。
最后给调用它的控制器,返回一个长长的字符串。。。。。把前面所有的都返回了。至于那个script函数,返回之后再tpl文件中一输出直接就变成函数了