[hu60t手册]六、xhtml/wml兼容表单

0. 加载配置文件
    这是前面一节漏掉的内容:在模板中加载配置文件使用
{load_conf file="conf:test.aa_bb"}
    conf:[cid.]name[.bid]的规则和tpl:…的一样。
    配置文件的后缀是.conf
  


1. 概述
    这个表单的设计是以xhtml的form表单为基础的,在wml下则使用<anchor>等功能相似的标记来模拟。
    xhtml中不同form内的标记name可以相同,但wml不行。所以hu60t会自动修改wml下重名的name,但仍然以原来的name提交。所以可以放心使用。并且,name="aa[]"这样的name也会得到正确的处理,保证wml下能正常使用。
    不需要对属性值进行html实体编码,在wml中也不需要把$替换成$$,hu60t会替你完成。
    为了兼容性,hu60t放弃了在wml下不支持的单选框,而复选框在wml下则用<select>模拟。
    


2. {form}
  
{form method="get" action="http://wap.baidu.com/s"}
……
{/form}
  
    就像平常使用<form>标记一样用{form}就可以了。不过{form}的属性只有以下几个:
  method  表单提交的类型,get或post
  action  表单提交的地址。
  file  表单是否用于上传文件。如果用于上传文件,必须设置为file=true,默认是false。
  enctype  表单的数据类型。它事实上只是对file属性的模拟,为了更像<form>。所以只支持(原封不动地打上去)enctype="application/x-www-form-application"(使file=false)或enctype="multipart/form-data"(使file=true)。其他表达方式都会使file=true。
    
    {form}的其他属性都会被忽略。没有name或id属性,所以要用CSS控制显示的话可以在它外面套一层{div}


3. {input}
  {input type="text" name="s" value="输入关键字"}
  {input type="submit" value="百度一下"}
  
    就像平常使用<input>标记一样。不过还是有些不同。来看看{input}有哪些属性:
    type  是input的类型,默认是text(“默认”表示当type属性不存在时,hu60t自动把它设置为type="text")。还可以是submit(提交按钮)、checkbox(复选框)、hidden(隐藏域)、file(文件上传控件)、password(密码输入框)、textarea(多行输入框。在hu60t中,textarea与input合并了)。
    
  name  是input的名字(提交后在$_GET、$_POST或$_FILES里的键)
  value  是input的值,在type=hidden、textarea、text、password、checkbox、submit时有效。
  size  是input的宽度,如size=10
    如果type=textarea,则size=array(50,30)这样可以同时设置宽度和高度。
    其他情况下如果size是一个数组,则取$size[0]作为input的宽度。
    对submit和hidden无效。
    
  
  
  wml(在v1.0.20120512以前,这个属性的名字是wmlnotice)  只对type=file有效。wml不支持文件上传控件,这个属性用来设置在wml输出什么。默认是什么也不输出。
  cols rows  它们分别是textarea的宽和高。rows只对type=textarea有效,但cols对text和password来说等效于size。
  
  checked  规定复选框是否默认选中。只对type=checkbox有效,取值true或false。


4. {select}
    {select}标记的用法和<select>不同。
    
例:{select name="aa" value=["b","c","d","e","f"]}
    它的全部属性如下:
  name  就是name
  value  是一个数组或关联数组。如果是关联数组,那么key将作为显示,而value作为提交给服务器的值。
    例:{select name="x" value=["一"=>1,"二"=>2,"三"=>3,"四"=>4]}(这是smarty3表示关联数组的方式)
    将显示 一 二 三 四,而$_REQUEST['x']收到1 2 3 4
  (20120512第二次打包 更新)
    本次更新重写了{select}。
  value  一个数组,是选择列表框发给服务器的值。
  output  一个数组,是选择列表框显示的内容,与value一一对应。如果省略了它,那么会把value显示出来。
  option  一个关联数组。如果不设置value、output,设置了它,那么它的键将成为output,值将成为value。因为很难理解,所以不建议使用该属性。
    selected  一个字符串或一个数组,包含了被选中的值(value)。
  multiple  是否多选,true或false。



    终于纠结地结束了,不知道你看明白了没。
    下一节的内容还没想好。
回复列表(7|隐藏机器人聊天)
  • @Ta / 2012-05-12 / /
    呼,
  • @Ta / 2012-05-12 / /
    ╭--------╮
    ╰╮〥----〥╭╯灌灌水
    ╭╯╰----╯╰╮
    ║~~~~~~~~║ 
    ║◢██◣◢~~~║ 
    ║◥██◤◥~~~║  
    ║~~◢██◣◢~║    
    ║~~◥██◤◥~║
    ╰═========═╯
  • @Ta / 2012-05-12 / /

    ╭--------╮
    ╰╮〥----〥╭╯灌灌水
    ╭╯╰----╯╰╮
    ║~~~~~~~~║ 
    ║◢██◣◢~~~║ 
    ║◥██◤◥~~~║  
    ║~~◢██◣◢~║    
    ║~~◥██◤◥~║
    ╰═========═╯
  • @Ta / 2012-05-12 / /
    靠,续帖怎么续这么一点点
  • @Ta / 2012-05-12 / /
    其实没有这样的必要,模板就模板使用HTML语言就好,弄太复杂反而会弄巧成拙
  • @Ta / 2012-05-12 / /
    @趣航科技小智    如果你有兴趣和时间写一份xhtml的模板再写一份wml的模板,你完全可以这样做啊。hu60t提供了这种支持。你可以不用这些标记。
        这些标记是给像我这样想偷懒的人用的。
  • @Ta / 2012-05-12 / /
    ╭--------╮╰╮〥----〥╭╯灌灌水╭╯╰----╯╰╮║~~~~~~~~║║◢██◣◢~~~║║◥██◤◥~~~║║~~◢██◣◢~║║~~◥██◤◥~║
添加新回复
回复需要登录