我尝试了一种简单的方法来创建任何 php 表单中的复选框和单选按钮。唯一的事情是我正在使用 Codeigniter MVC 框架。
这是您可以插入到您的公共模型或任何帮助文件中的函数定义。
function createOptions($fieldName, $labelsArray=array(), $selectedOption, $fieldType,$valuesArray = array()) {
$returnString = '';
if(count($valuesArray)!=count($labelsArray))
$valuesArray=$lebelsArray;
if ($fieldType === 'checkbox') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='   <input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if(in_array($valuesArray[$i], $selectedOption)){
$returnString.=' checked="checked" ';
}
$returnString.=' />  <label>'.$labelsArray[$i].'</label>';
}
}
if ($fieldType === 'radio') {
for ($i=0;$i<count($labelsArray);$i++) {
$returnString.='  <input type="radio" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i];
if($valuesArray[$i]== $selectedOption)
$returnString.=' checked="checked" ';
$returnString.=' /><label>'.$labelsArray[$i].'</label>';
}
}
return $returnString;
}
而且,你必须在视图文件中调用这个函数,
<?php
echo $this->common_model->createOptions('userHobbies[]', $hobbyOptions, $userHobbies, 'checkbox'); ?>
第一个参数是复选框字段或单选字段的名称,对于两种情况的所有选项,它总是相同的。第二个是标签数组,第三个是选定的选项,它将在加载表单时将这些选项显示为选中。第四种是将字符串作为“复选框”或“收音机”的字段类型。第五个是 values 数组,如果存在,它将包含标签的值,其顺序与标签的顺序相同。如果它不存在,标签数组将被当作值数组。我想知道这段代码是否有任何进一步的优化可能?