以《ThinkPHP之数组参数》中的例子为依据,在对一个用户的爱好进行编辑时,如何使该用户现有的爱好选项选中?
显示逻辑是:遍历所有爱好选项,对每个选项进行判定,是否当前选项的id被包含在现有爱好的id数组中,如果被包含,则添加checked属性。代码如下:
<volist name="hobbys" id="h">
<input type="checkbox" name="hobby_id[]" value="{$h.id}" <?php if(in_array($h['id'], $myids)) echo("checked");?> />{$h.name}
</volist>
变量hobbys表示所有待选的爱好,$myids表示该用户已选爱好的id,使用函数in_array进行包含判断。注意,由于input标签是html元素,在该元素内部使用""会引起Eclipse对代码的校验错误,因为input的结束标签">"被混淆了,但是不影响页面正常显示。