因为要用php做一些表单界面的开发,自己只会JAVA,PHP又不懂,然后就到W3SCHOOL初步入门了下,下面就把最近遇到的总结下吧。
因为有前辈的代码做参考,他用的是smarty,然后在模板中提取数据。
先说下smarty是咋回事吧
PHP通过smarty类将动态的数据传给模板,模板来显示数据,从而实现动态页面,其实就是将显示与控制分离,就是JAVA里的Servlet和JSP了。
在smarty对象初始化的时候需要对其参数进行设置,这里我注意到的是两个,一个是前标和后标,然后是模板的位置。
刚开始我不知道模板还要有指定位置的(主要英文不好,template文件夹不认识,惭愧啊),所以就把模板放在php文件的边上,结果坑了我好久,就是找不到模板文件。
在PHP端,
传数据用的是$smarty->assign("key", $value);//这里跟JAVA里Servlet通过将数据存入那四个容器传过去是一样的。
显示用的是$smarty->display("templet.dwt");//为啥是dwt呢,我也不知道,反正前辈们都这么写的,其实跟htm一样的。
在模板上,
通过smarty定义时写的前标和后标来拿出smarty传来的数据。其实跟JSP中用EL表达式拿数据时一样的,只不过JSP是直接调getAll(),从四个容器中拿,这里只在smarty一个容器中拿数据。同样,PHP在编译时也会将模板编译成一个php文件,用echo语句输出。
那么平常的直接应用就不多说了,主要说下列表吧
主要有两种方法,一个是section,一个是foreach。
(这里我用的上下标签为{})
对于一维的数组:
{foreach item=item1 from=$array1}
{$item1}
{/foreach}
{section name=sec1 loop=$array1}
{$array1[sec1]}
{/section}
对于二维的数组:(因为sql拿到的数据就是二维的,我看经常会用到)
{foreach item=index2 from=$array2}
{foreach key=key2, item=item2 from=$index2}
{$key2}:{$item2}
{/foreach}
{/foreach}
{section name=sec2 loop=$array2}
index1: {$array2[sec2].index1}
index2: {$array2[sec2].index2}
index3: {$array2[sec2].index3}
{/section}
在遍历的过程中加上<tr><td>标签,外面再套个<table>就可以得到一个动态的表格了。当然,对于section也是同样的道理,加上<option>标签就行了。
差不多就这样了吧,将自己在上周学到的东西总结一下,都是些入门的东西,不过也算是认真学过用过了。