【问题标题】:Disable items in dropdown which are previously selected using codeigniter禁用先前使用 codeigniter 选择的下拉列表中的项目
【发布时间】:2019-04-13 16:31:13
【问题描述】:

我创建了一个包含职位的下拉菜单。我想禁用用户之前应用的下拉项。为了减少我的代码,我创建了 options_selected static 来获取选定的工作资料列表。 这里 $job_positions 包含所有工作资料,$options_selected 包含他之前从 job_positions 中选择的所有项目。现在他不能再次选择这些选项,这些应该被禁用。

   $job_positions =array('0' => 'Select', '1' => 'IT Staff', '2' => 'Customer Care', '3' => 'Sales', '4' => 'Doctor');
        $options_selected =array('1' => 'IT Staff','2' => 'Doctor');
        $opt_array=array();
        // extract the job position
          for ($i=0; $i < count($job_positions); $i++) { 
            $disabled = '';
            // extract the options_selected and compare with the job position and if match overwrite the variable disabled
            for ($x=1; $x <= count($options_selected); $x++) { 
                if ($options_selected[$x]==$job_positions[$i]) {
                    $disabled = 'disabled';
                }
            }
            $opt_array[]= '<option '.$disabled.' value="'.$job_positions[$i].'">'.$job_positions[$i].'</option>';
          }
echo form_dropdown('category', $opt_array);

【问题讨论】:

    标签: codeigniter codeigniter-3


    【解决方案1】:

    您可以使用array_diff() 函数比较两个数组的值并返回差异。

    $job_positions =array('0' => 'Select', '1' => 'IT Staff', '2' => 'Customer Care', '3' => 'Sales', '4' => 'Doctor');
    $options_selected =array('1' => 'IT Staff','2' => 'Doctor');
    
    $position = array_diff($job_positions,$options_selected);
    
    echo form_dropdown('category', $position);
    

    【讨论】:

    • @user3653474 如果您的问题没有解决,请告诉我。
    • 谢谢@Khalifa,有没有其他方法可以在codeigniter表单下拉列表中实现相同的结果。
    • @user3653474 删除options selected 而不是禁用它,对吗?
    • 我已经更新了上面的代码,我正在尝试将所有选项收集在一个数组中,然后将其传递给 form_dropdown 但选项正在重复。
    • 答案已更新检查是否解决了您的问题,如果您的问题没有解决,请告诉我。
    猜你喜欢
    • 2022-01-09
    • 2023-04-09
    • 1970-01-01
    • 2016-01-13
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多