html利用列表写单选题,smarty 自定义函数(示例代码)

自定义函数:

在lib/plugins中新建文件,命名方式是固定的:function.方法名称.php 或者

block.方法名称.php

1.

{literal}标签区域内的数据将按字面意思处理,代表性地是用在javascript/css语块周围,不然这些语言使用的花括号‘{’、‘}’会干扰模版定界符语法。{literal}{/literal}标签里面的所有符号不会被解释,全部按原样输出。

例如:在main.html代码中加入标签后:

639ae8c95c1a41629e98652c5a421354.jpg

运行结果:

06ffd75e66e440bfaea320331809455c.jpg

2.  {html_select_date}

自定义函数{html_select_date}用于创建日期下拉列表,它可以显示任意年月日。下述列表中没有说明的参数会在相应的年、月、日标签中以名/值的键值对形式显示出来。

显示界面:

2aa6a225b3ea47ec9e7249195e246335.jpg

加入参数后:

显示界面:

5f915f01434941eaa0a98b7e8a51a768.jpg

3.网上找的:颜色控件  function.color.php

(需要引入文件 jscolor.js)

f57eeca1feaa4cad8eb239d864032101.jpg

3668188060ee4f2ba26b9b6a9c9b6f3b.jpg

1 <?php2

3 /**4 * 颜色控件5 *6 * @param $name 控件name7 * @param $value 选中值8 * 9 */

10 function smarty_function_color($args, $smarty) {11

12 $name = $args[\'name\'];13 $value = !empty($args[\'value\']) ? $args[\'value\'] : \'000000\';14

15 if(!defined(\'COLOR_INIT\')) {16 define(\'COLOR_INIT\', 1);17 $str= \'\';18

19 }20 $str .= \'\';21

22 return $str;23 }

View Code

在前端调用方法:   

运行后:可任意选择

f3bfe69c4af348e9a48c96fe4d3c0808.jpg

4.{block} 块:  编辑器(网上找的)

{block}{/block}成对出现

例如:

引入:block.textarea.php(还有ckeditor文件夹)

在前端调用方法:

//不加参数:

运行后:

c05e90c3aa7344ae8df3f8106516e739.jpg

//加参数:

运行后:

10078e4c18b049cf8f4513ec97476558.jpg

5. 练习自定义函数function:写方法将main.html 的类型改成显示具体内容

新建文件 function.typename.php

1 <?php2

3 //参数:1.$args数组,必须有

4 function smarty_function_typename($args)5 {6 //取传过来的code值

7 $code=$args["code"];8 if($code==0)9 {10 return "判断题";11 }12 else if($code==1)13 {14 return "单选题";15 }16 else

17 {18 return "多选题";19 }20 }

在前端调用方法: main.html   

运行后:

2748f1ff24ec416d8fed4b86103cecc6.jpg        

fc3dd662254a402284eed64946e162ed.jpg

6. 练习自定义函数block: 定义块函数来改变删除修改的样式

新建文件 function.typename.php(需要四个参数)

1 <?php2 //$args 是用户可以传入的参数 $a指函数是开始和结束

3 function smarty_block_fontstyle($args,$content,$smarty,$a)4 {5 $color=$args["color"];6 $size=$args["size"];7

8 //block函数会执行2次,在开始和结束标记时各执行一次9 //为防止重复执行,需要进行判断

10 if(!$a)//如果是结束标记执行的

11 {12 return "{$content}";13

14 }15 }

在前端调用方法: main.html

1

2

3

4 删除

5 修改

6

7

运行后:(中间操作时不小心删了一行数据)

ce276d43d0614a709e1897199d8f2716.jpg      

067fef7613d04c79b9d387fc0c6516a3.jpg

7. 配置文件 :Config Files

在configs文件夹中新建文件,文件名以 .conf 结束  例如:test.conf

配置文件是通过内置函数{config_load}或API的configLoad()函数载入到模板的。

例子:在前端 main.html写一个div,利用配置文件改变它的样式:

以下是题目列表

在configs文件夹中新建文件 style.conf

920f9987f61e4f34adc998c3babaf146.jpg

在前端 main.html:

1.读取配置文件  :

2.引入变量用 :

以下是题目列表

如果:在style.conf定义了相同的样式,用块来区分,定义方式为:[块名]

c517a60393ae401a882c94ed29a1cc0a.jpg

在前端 main.html:给config_load 第二个变量  section

以下是题目列表

dff8348217534722b300dcf8ebb3ed89.jpg

以下是题目列表

fc6a2b4ed1984cafb4abebba83ce50c9.jpg

第一次弄的,大家给点意见 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>低碳问卷1</title> </head> <body> <div align="center"> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin var ans = new Array; var done = new Array; var yourAns = new Array; var explainAnswer = new Array; var score = 0; ans[1] = "b"; ans[2] = "b"; ans[3] = "a"; ans[4] = "c"; ans[5] = "b"; explainAnswer[1]="你的回答是不正确,努力哟!"; explainAnswer[2]="你的回答是不正确,努力哟!"; explainAnswer[3]="你的回答是不正确,努力哟!"; explainAnswer[4]="你的回答是不正确,努力哟!"; explainAnswer[5]="你的回答是不正确,努力哟!"; function Engine(question, answer) { yourAns[question]=answer; } function Score(){ var answerText = "看看你的成绩如何?\n------------------------------------\n"; for(i=1;i<=5;i++){ answerText=answerText+"\n问题:"+i+"\n"; if(ans[i]!=yourAns[i]){ answerText=answerText+"\n正常的答案是: "+ans[i]+"\n"+explainAnswer[i]+"\n"; } else{ answerText=answerText+" \n对的 \n"; score++; } } answerText=answerText+"\n\n你的成绩是 : "+score+"\n"; //now score the user answerText=answerText+"\n结论 : "; if(score<=0){ answerText=answerText+"你应该好好多学点了!"; } if(score>=1 && score <=2){ answerText=answerText+"你还是有些知识欠缺的!"; } if(score>=3 && score <=3){ answerText=answerText+"做的还不错,但还需要努力!"; } if(score>4){ answerText=answerText+"哇,你可真是厉害,高手,高手!!"; } alert(answerText); } // End --> </script><br> <b><font color="#FF0000" size="5">低碳问卷1</font></b></div> <p align="center" style="margin-top: 5px; margin-bottom: 0"><br> <b><font color="#000000">(同学们点击相应选项,完成后点击查看成绩按钮可查看结果。)</font></b></p> <hr color="#FF0000"> <FORM> <b>1.“低碳”是指 _____。</b><br> <input type=radio name="q1" value="a" onClick="Engine(1, this.value)">a) 减少碳水化合物<br> <input type=radio name="q1" value="b" onClick="Engine(1, this.value)">b) 减少二氧化碳排放<br> <input type=radio name="q1" value="c" onClick="Engine(1, this.value)">c) 减少一氧化碳排放<br> <input type=radio name="q1" value="d" onClick="Engine(1, this.value)">d) 减少碳金属<p> <b>2. 家居用电:二氧化碳排放量(kg)=耗电度数×_____?</b><br> <input type=radio name="q2" value="a" onClick="Engine(2, this.value)">a) 0.275<br> <input type=radio name="q2" value="b" onClick="Engine(2, this.value)">b) 0.785<br> <input type=radio name="q2" value="c" onClick="Engine(2, this.value)">c) 0.89<br> <input type=radio name="q2" value="d" onClick="Engine(2, this.value)">d) 1.25<p> <b>3.每个家庭每使用一度电,相当于排放了_____公斤的二氧化碳。 </b><br> <input type=radio name="q3" value="a" onClick="Engine(3, this.value)">a) 1.5 <br> <input type=radio name="q3" value="b" onClick="Engine(3, this.value)">b) 0.45<br> <input type=radio name="q3" value="c" onClick="Engine(3, this.value)">c) 0.15<br> <input type=radio name="q3" value="d" onClick="Engine(3, this.value)">d) 0.785<p> <b>4. 短时间不用电脑时,启用_____模式,能耗可下降到50%以下?</b><br> <input type=radio name="q4" value="a" onClick="Engine(4, this.value)">a) 屏幕保护<br> <input type=radio name="q4" value="b" onClick="Engine(4, this.value)">b) 开机模式<br> <input type=radio name="q4" value="c" onClick="Engine(4, this.value)">c) 睡眠模式<br> <input type=radio name="q4" value="d" onClick="Engine(4, this.value)">d) 关闭显示器<p> <b>5. 如果全国3.5亿烟民1天少抽1支烟,每年能节约准煤5万吨,减排二氧化碳_____?( </b><br> <input type=radio name="q5" value="a" onClick="Engine(5, this.value)">a) 15万吨<br> <input type=radio name="q5" value="b" onClick="Engine(5, this.value)">b) 21万吨<br> <input type=radio name="q5" value="c" onClick="Engine(5, this.value)">c) 18万吨<br> <input type=radio name="q5" value="d" onClick="Engine(5, this.value)">d) 13万吨<p> <CENTER> <input type=button onClick="Score()" value="看看我的成绩?"> </CENTER> </FORM> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值