Smarty标签运算,控制结构[if,for,foreach,section,while]
Smarty标签运算:
在页面上做简单的运算[temp5.html]
条件判断if
循环结构
for
foreach用得比较多,foreach例子从数据库取出的数据
section功能和foreach类似,没foreach好理解 不推荐用 while
<?php
/*
smarty html标签可以运算
if elseif else判断
for循环
foreach循环
*/
require('../../smarty3/libs/Smarty.class.php');
require('./mysmarty.class.php');
$smarty=new MySmarty(); // 运算
$age=18;
$smarty->assign('age',$age); // for循环
$start=1;
$end=100;
$smarty->assign('start',$start);
$smarty->assign('end',$end); // foreach循环
// 连接数据库
$conn=mysqli_connect('localhost','root','123456','boolshop');
//设置字符集
$sql ='set names utf8';
mysqli_query($conn,$sql);
$sql ='select * from goods limit 5';
$rs=mysqli_query($conn,$sql);
// 取出数组
$goods=array();
while($row=mysqli_fetch_assoc($rs)){
$goods[]=$row;
}
$smarty->assign('goods',$goods); $smarty->display('temp5.html'); ?>
temp5.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp5</title>
</head> <body>
<!-- 运算 -->
<h1>{$age}</h1>
<h1>{$age+60}</h1>
<h2>{if $age>18}</h2>
play play
<h2>{else if $age<}</h2>
还不能 play play
<h2>{else}</h2>
十八年如何勾勒才显得从容闲适
十八年尽心竭力但求随自己意志
{/if}
<br/> <!-- for循环
格式:for $i=数字或变量 to 数字或变量 step 隔几个 --> <!-- 1-100打印奇数,隔三个换行;
奇数可以用步长step 2就是间隔2,-》1 3 5
$i%3==0打印出第一行是1 3因为3是整除了,但不应该根据i,而是根据一共有几个数
$i@total = (end-start+1)/step 是打印的总个数
$i@iteration =每次增加至有多少个的变量
-->
{for $i=$start to $end step 2}
{$i}
{if $i@iteration%3==0}
<br/>
{/if}
{/for} <br/> {literal}
<!-- foreach 循环
格式:foreach $数组名 as $k=>$v[可以自己设定] 二维数组调用 $v.名-->
<!-- 1循环打印商品数组
2表格隔行换色<tr {if $v@iteration%2==1}bgcolor="blue"{/if}><td>{$v@iteration}</td>
3 first 只有第一行商品号背景色<tr {if $v@first}bgcolor="blue"{/if}>-->
{/literal} <table>
<tr><td>商品号</td><td>商品名</td><td>价格</td></tr> {foreach $goods as $k=>$v}
<tr {if $v@first}bgcolor="blue"{/if}><td>{$v@iteration}</td><td>{$v.goods_name}</td><td>{$v.shop_price}</td></tr>
{/foreach}
</table> <!-- section 循环,格式:name,loop字段必须
loop循环数组=$source
name属性代表每次循环的循环单元的临时变量
把$source每循环的单元赋于name 自定义的 字段 --> <table>
<tr><td>号</td><td>商品名</td><td>价格</td></tr> {section name=g loop=$goods}
<tr><td>{$goods[g].goods_id}</td><td>{$goods[g].goods_name}</td><td>{$goods[g].shop_price}</td></tr>
{/section}
</table>
<!-- $source一定是索引数组 每循环一次key给g,g当goods的那一轮的key --> <!-- while循环 -->
{while $age<}
{$age++}小于25
{/while} </body>
</html>
Smarty标签运算,控制结构[if,for,foreach,section,while]的更多相关文章
- Smarty标签 for运算
$select="SELECT {$col_name} FROM woke_order where deleted=0 ".$where.$orderby ; // 取出数组 $r ...
- 如何处理JS与smarty标签的冲突
smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...
- 如何处理JS,css与smarty标签的冲突
smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...
- Smarty数学运算
数学运算可以直接应用到变量 Example 3-5. math examples 例 3-5.数学运算的例子 {$foo+1} {$foo*$bar} {* some more complicat ...
- Smarty中一些标签的使用
Smarty中的标签和php中的标签不一样 foreach标签{foreach from=$goods(变量名) key='键,不带$' item='值,不带$'}中间的显示内容{/foreach ...
- Smarty for foreach 使用
{for} {for}{forelse}用于创建一个简单的循环. 下面的几种方式都是支持的: {for $var=$start to $end}步长1的简单循环. {for $var=$start t ...
- mybatis <where>、<set>、<trim>、<sql>、<foreach>标签的使用
转:http://www.cnblogs.com/lixiujie/p/5766669.html <resultMap>标签的使用:这个类似于hibernte用于映射我们创建的vo对象与数 ...
- MyBatis foreach标签的用法
From<MyBatis从入门到精通> 一.foreach实现in集合 1.映射文件中添加的代码: <!-- 4.4 foreach用法 SQL语句有时会使用IN关键字,例如id i ...
- jstl中的foreach标签
<%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...
随机推荐
- Android 模仿微信启动动画
本文内容 环境 项目结构 演示微信启动动画 本文演示微信启动动画.请点击此处下载,自行调试. 顺便抱怨一下,实践性(与研究性质的相对)技术博的"七宗罪": 第一宗罪,错字连篇,逻辑 ...
- Android 之 沉浸式状态栏及顶部状态栏背景色设置
现在很多应用都引用了沉浸式状态栏,如QQ,效果下图: 效果很酷炫,其实设置也很简单.但是,需要注意的是,这种效果只能在API19以及以上版本中才能够做到. 方法一: 首先,如果想让界面Activity ...
- JAVA设计模式——第 3 章 单例模式【Singleton Pattern】(转)
这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一.独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的 ...
- ADHOC Report 配置
ADHOC Report ADHOC Report - 临时的report,随时可以去系统中按照你选择的条件打出你想看的report Add ADHOC Report --AddReport use ...
- python——从datetime模块探索python的数据架构
问题出现于我试图向自建网页中加入实时时间开始. 我之前已经知道python中有有关事件和日期的模块datetime.以下导入datetime并作实验. >>> import date ...
- MySQL 简单存储过程实现Redis的INCR功能
USE test; DROP PROCEDURE IF EXISTS pro_testincrement; DELIMITER && CREATE PROCEDURE pro_test ...
- 【leetcode】solution in java——Easy4
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6415011.html 16:Invert Binary Tree 此题:以根为对称轴,反转二叉树. 思路:看到 ...
- BIEE11G配置Oracle 12c数据源
方法一:直接在连接池中输入连接信息 将tnsname.ora里配置的连接信息等号后面的字符串去掉空格和换行符即可) (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)( ...
- 〖Android〗ant build android project, setting android.jar precedence
最近公司的一个项目中,新增了classes.jar包,与android.jar有冲突,必须得在加载android.jar前行加载classes.jar: 在持续集成环境中须使用ant编译,classe ...
- Web工程中各类地址的写法
1)总体原则 在java web开发中,只要是url地址,那么最好以“/”开头,也就是绝对路径的方式.那么这个“/”到底代表什么呢? 如果“/”是给服务器用的,则代表当前web工程:如果是给浏览器用的 ...