dapeng 2012-10-08 17:59:54 3560次浏览 7条回复 0 0 0

当我们需要一个多选框的时候往往不是在一个条件下获得的 这个时候可能就遇到了这问题

foreach($array as $key=>$val){
    $val;
    $form->checkBoxList($model,name);

}

这时候控制器接受不到 $_post[]->name;的值
因为此时的name应该是数组 所以修改为 $form->checkBoxList($model,name[]); 这样我们可以再控制器获得name的数组

问题: 这时候添加没问题了 但是在修改的时候 name[] 却不能获得所需的值
如果不是循环格式这样做就没问题 现在没法修改 修改的时候 的形式 $form->checkBoxList($model,name); 这样缺没问题

前后矛盾 求高人指点

  • 回复于 2012-10-08 19:12 举报

    chekboxlist应该是这样的嘛:checkBoxList(string $name, mixed $select, array $data, array $htmlOptions=array ( ))
    name后面还要跟一个数组,你可以先用循环生成这个$data数组,然后再用checkBoxList

  • 回复于 2012-10-10 10:18 举报

    我是真没理解你的意思

  • 回复于 2012-10-10 10:24 举报
    foreach($department_array as $item){ //部门循环开始
        echo "<a href='#' onclick='shownames(\"choosen_dept_".$item['id']."\")'>".$item['name']."</a>";
        echo "</br>";
    ?>
    <div style="display:none" id="choosen_dept_<?php echo $item['id'] ?>">
        <?php 
            echo $form->checkBoxList($model,'choosen[]',CHtml::listData(Staff::model()->findAllBySql("select id,name from oa_staff where dept_id>:dept_id and dept_id=:dept_value and job_status!=3",array(':dept_id'=>'1',':dept_value'=>$item['id'])),'id','name'), array('separator'=>'&nbsp;&nbsp;&nbsp;' , 'labelOptions'=>array('style'=>'display:inline;')));  
            echo "</br>";			  
        ?>
    </div>
    <?php 
    } //部门循环结束
    

    我现在这个 是foreach出来每一个部门
    多选为各部门下面的所有人
    现在choosen[]可以传值 但是修改的时候接收不到值

  • 回复于 2012-10-10 10:32 举报

    也许是我没理解你的意思,我想你应该是想生成多个chekboxlist组合在一起,然后post传值到controller中去,因为chekboxlist,所以name值是一个一维数组,我想你是想要在controller中获得一个二维数组,那么区分选中的name值,你可以这样

    foreach($array as $key=>$val){
        $val;
        $form->checkBoxList($model,name[$val->id]);//如果$val是一个对象的话
    
    }
    

    在controller中就可以用比如是 $_POST[model][name] 获取选中的二维数组值;
    试试看,我也不知道这样行不行得通

  • 回复于 2012-10-10 11:04 举报

    好的 谢谢你 你的意思我明白 想你说的应该没问题 现在就是update的时候看看能不能传回来值

  • 回复于 2012-10-10 15:03 举报

    烦死了 妈的update的时候怎么把_form 和控制器里的名字对应上啊

  • 回复于 2012-11-21 09:47 举报

    $form->checkBoxList($model,name,$data,array('uncheckValue'=>null));

您需要登录后才可以回复。登录 | 立即注册