首页 > 解决方案 > Codeigniter 中的多选下拉验证

问题描述

我正在尝试在 Codeigniter 中验证多选下拉表单验证,并且我正在使用自定义验证回调方法进行验证。我尝试了几个 StackOverflow 答案,但没有一个对我有用。我错过了什么吗?

这是我的视图代码。

<?php echo form_open_multipart('Register/user_register') ?>
    	<div class="form-group">
				<label for="musicGen">Select Your Music Genre</label>
				<?php echo form_error('musicGen'); ?>
				<select class="form-control" name="musicGen[]" multiple="multiple" id="musicGen">
					<?php
					foreach ($genre as $row) {
						echo '<option class="form-control" value="' . $row->genreId . '">' . $row->genreName . '</option>';
					}
					?>
				</select>
			</div>
<?php echo form_close() ?>

这是我的控制器。

$this->form_validation->set_rules('musicGen', 'Music Genre', 'required|callback_multiple_select');

public function multiple_select()
	{
		$music_genre = $this->input->post('musicGen');

		if (is_null($music_genre)) {
			$this->form_validation->set_message('multiple_select', 'Select at least one Music Genre');
			return false;
		} else {
			return true;
		}

	}

标签: phphtmlcodeigniter

解决方案


无需使用回调函数,除非您希望用户选择多个选项。您可以在代码中使用以下代码

if (empty($_POST['musicGen'])) {
      $this->form_validation->set_rules('musicGen', 'Music Genre', 'required',array('required' =>'Select at least one Music Genre'));
   }

推荐阅读