0

我的帖子

个人中心

设置

  发新话题
当我们添加商品信息的时候,所有文本框都是空白的,所以不需要有太多的默认值或默认勾选的信息。
但在修改信息的页面中,就不一样了。信息已存在的资料,和已勾选的值应该保留,所以,如何实现这个默认勾选,我们需要思考一下。

网上搜索下,别人博客代码基本也就是这样实现的:
<select name="months">
        <option value="" <? if($month==""){ echo  "selected='selected'";} ?>></option>
        <option value="1" <? if($month=="1"){ echo  "selected='selected'";} ?>>1</option>
        <option value="2"<? if($month=="2"){ echo  "selected='selected'";} ?>>2</option>
        <option value="3" <? if($month=="3"){ echo  "selected='selected'";} ?>>3</option>
        <option value="4" <? if($month=="4"){ echo  "selected='selected'";} ?>>4</option>
        <option value="5" <? if($month=="5"){ echo  "selected='selected'";} ?>>5</option>
        <option value="6" <? if($month=="6"){ echo  "selected='selected'";} ?>>6</option>
        <option value="7" <? if($month=="7"){ echo  "selected='selected'";} ?>>7</option>
        <option value="8"<? if($month=="8"){ echo  "selected='selected'";} ?>>8</option>
        <option value="9" <? if($month=="9"){ echo  "selected='selected'";} ?>>9</option>
        <option value="10" <? if($month=="10"){ echo  "selected='selected'";} ?>>10</option>
        <option value="11" <? if($month=="11"){ echo  "selected='selected'";} ?>>11</option>
        <option value="12" <? if($month=="12"){ echo  "selected='selected'";} ?>>12</option>
</select>
而我在thinkphp开发中,都是在模版中设置这些,思考了一些方法,在此分享给大家,如果您有更好的方法,还请多多指教哟!

【情况一】:二选一的下拉列表情况。
这个非常好处理。我们把默认的选项放在下面,然后定义一个变量$selected,如果是,则输出,否则不输

出,也就达到了默认选中的目的。

-------------------------------------1:

<if condition="$one['status'] eq '1'">
    <assign name="selected" value="selected" />
</if>
<select name="status">
    <option value="0">禁用</option>
    <option value="1" {$selected}>正常</option>
</select>


【情况二】:多选一的下拉列表。
操作要稍微复杂一点,给每个选项设置一个变量,如果是,则输出selected,否则不输出。总之,结果只

会有一个selected,所以不用担心冲突、重复的问题。

-------------------------------------2:

<if condition="$one['gstatus'] eq 0">
    <assign name="selected0" value="selected" />
</if>
<if condition="$one['gstatus'] eq 1">
    <assign name="selected1" value="selected" />
</if>
<if condition="$one['gstatus'] eq 2">
    <assign name="selected2" value="selected" />
</if>
<if condition="$one['gstatus'] eq 3">
    <assign name="selected3" value="selected" />
</if>
<if condition="$one['gstatus'] eq 4">
    <assign name="selected4" value="selected" />
</if>
<select name="gstatus">
    <option value="0" {$selected0}>未上架</option>
    <option value="1" {$selected1}>在售</option>
    <option value="2" {$selected2}>已租赁</option>
    <option value="3" {$selected3}>已出售</option>
    <option value="4" {$selected4}>缺货</option>
</select>

【情况三】:非常多的下拉列表情况。
那么就用循环输出,先定义一个空值的变量,然后判断是否相等,如果相等,则对其赋值selected。

-------------------------------------3:

<select name="ptid">
    <option value="0">顶级</option>
    <volist name="tlist" id="vo">
        <assign name="selected" value="" />
        <if condition="$vo['tid'] eq $one['ptid']">
            <assign name="selected" value="selected" />
        </if>
        <option value="{$vo.tid}" {$selected}>
            {$vo.tname}
        </option>
    </volist>
</select>


【情况四】:单选按钮的情况。
原理跟上一种差不多,所以不用多说啦。

-------------------------------------4:

<volist name="clist" id="vo">
    <assign name="checked" value="" />
        <if condition="$vo['cid'] eq $one['cid']">
            <assign name="checked" value="checked" />
        </if>
    <label class="col-xs-5 col-sm-4 text-right"></label>
    <label class="col-xs-7 col-sm-6">
        <input type="radio" name="cid" value="{$vo['cid']}" {$checked} />
        {$vo['cname']}
    </label>
</volist>


【情况五】:复选框按钮的情况
原理跟上一种差不多,只不过我们这次要判断复选框的值是否存在于已勾选的数值中,所以不用多说啦。

-------------------------------------5:

<volist name="jlist" id="one">
    <assign name="checked" value="" />
    <if condition="in_array($one['jid'],$ujlist)">
        <assign name="checked" value="checked" />
    </if>
    <label class="col-xs-12 col-sm-12"></label>
    <label class="col-xs-12 col-sm-12 text-center">
        <input type="checkbox" name="jid[]" value="{$one['jid']}" {$checked} />{$one

['jname']}
    </label>
</volist>




本帖最后由 七彩极 于 2017-11-12 17:34 编辑
个人认为这种更简便一些,互相探讨下
<select name="gender" required>
                                                        <option value="男"{if condition="$record['gender'] eq '男'"}selected{/if}>男</option>
                                                        <option value="女"{if condition="$record['gender'] eq '女'"}selected{/if}>女</option>
                                                </select>

本帖最近评分记录
  • 七彩极 无忧币 +2 欢迎讨论~! 2017-10-25 11:39



本帖最后由 黎卿 于 2017-10-25 10:41 编辑
引用:
原帖由 黎卿 于 2017-10-25 10:38 发表
个人认为这种更简便一些,互相探讨下

                                                        男
                                                        女
                                                 ...
对于两个选项,这样写没什么,但如果选项更多的时候,每行都要这样写,就繁琐了哈。



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 七彩极 于 2017-10-25 11:39 发表

对于两个选项,这样写没什么,但如果选项更多的时候,每行都要这样写,就繁琐了哈。
选项多的一般会用循环的吧,很少有把很多选项一一打出来的



引用:
原帖由 黎卿 于 2017-10-25 14:24 发表

选项多的一般会用循环的吧,很少有把很多选项一一打出来的
所以我就用第3、4种解决方案哈~!



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
‹‹ 上一贴:【教程经验】php最常用的函数总结表   |   下一贴:【其他】看看你能拿到PHP的什么学位 ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com