GET 方法的 Codeigniter(3) 表单验证总是 returns FALSE
Codeigniter(3) form validation always returns FALSE for GET method
codeigniter 表单验证对于 GET
方法无法正常工作,它 returns 始终为假(即使所有输入字段都正确)并且不显示错误消息。但是当我尝试使用 POST
方法时,它工作正常并在输入字段错误时显示错误消息。
下面是包含 3 个输入字段的 HTML 表单,所有字段都是必填字段,我正在检查验证。
**<form action="" method="get" name="ak-api-log" id="ak-api-log-form" autocomplete="off">**
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">API</label>
**<select name="ak_api_type" class="form-control">
<option value="all">All</option>
<option value="admin">Admin</option>
<option value="editor">Editor</option>
</select>**
<?php echo form_error('ak_api_type', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">From</label>
**<input type="text" name="ak_api_from_date" class="form-control" id="ak-api-from-date"">**
<?php echo form_error('ak_api_from_date', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">To</label>
**<input type="text" name="ak_api_to_date" class="form-control" id="ak-api-to-date">**
<?php echo form_error('ak_api_to_date', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<button type="submit" id="userBtn" class="btn btn-primary pull-right"><i class="fa fa-search"></i> Search</button>
</div>
</div>
**</form>**
下面是我的控制器代码。我删除了问题不需要的代码。
public function api_log(){
$this->form_validation->set_rules('ak_api_type', 'ak_api_type', 'required');
$this->form_validation->set_rules('ak_api_from_date', 'ak_api_from_date', 'required');
$this->form_validation->set_rules('ak_api_to_date', 'ak_api_to_date', 'required');
if ($this->form_validation->run() == FALSE){
$this->template->view(strtolower(__CLASS__).'/'.__FUNCTION__);
}else {
echo 'true';exit;
}
}
快速解决方案将不胜感激。提前致谢!
Codeigniter 表单验证不支持 GET
方法或除 POST
之外的任何其他方法。
您可能需要如下替代解决方案。
// before creating the form validation rule.
$dataToValidate = $this->input->get();
// or you can set this data manually as below
$dataToValidate = array(
'username' => 'johndoe',
'password' => 'mypassword',
'passconf' => 'mypassword'
);
// followed by
$this->form_validation->set_data($dataToValidate);
您可以像上面一样在 Codeigniter 中轻松设置自定义数据。
codeigniter 表单验证对于 GET
方法无法正常工作,它 returns 始终为假(即使所有输入字段都正确)并且不显示错误消息。但是当我尝试使用 POST
方法时,它工作正常并在输入字段错误时显示错误消息。
下面是包含 3 个输入字段的 HTML 表单,所有字段都是必填字段,我正在检查验证。
**<form action="" method="get" name="ak-api-log" id="ak-api-log-form" autocomplete="off">**
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">API</label>
**<select name="ak_api_type" class="form-control">
<option value="all">All</option>
<option value="admin">Admin</option>
<option value="editor">Editor</option>
</select>**
<?php echo form_error('ak_api_type', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">From</label>
**<input type="text" name="ak_api_from_date" class="form-control" id="ak-api-from-date"">**
<?php echo form_error('ak_api_from_date', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="bmd-label-floating">To</label>
**<input type="text" name="ak_api_to_date" class="form-control" id="ak-api-to-date">**
<?php echo form_error('ak_api_to_date', '<div class="error">', '</div>'); ?>
</div>
</div>
<div class="col-md-3">
<button type="submit" id="userBtn" class="btn btn-primary pull-right"><i class="fa fa-search"></i> Search</button>
</div>
</div>
**</form>**
下面是我的控制器代码。我删除了问题不需要的代码。
public function api_log(){
$this->form_validation->set_rules('ak_api_type', 'ak_api_type', 'required');
$this->form_validation->set_rules('ak_api_from_date', 'ak_api_from_date', 'required');
$this->form_validation->set_rules('ak_api_to_date', 'ak_api_to_date', 'required');
if ($this->form_validation->run() == FALSE){
$this->template->view(strtolower(__CLASS__).'/'.__FUNCTION__);
}else {
echo 'true';exit;
}
}
快速解决方案将不胜感激。提前致谢!
Codeigniter 表单验证不支持 GET
方法或除 POST
之外的任何其他方法。
您可能需要如下替代解决方案。
// before creating the form validation rule.
$dataToValidate = $this->input->get();
// or you can set this data manually as below
$dataToValidate = array(
'username' => 'johndoe',
'password' => 'mypassword',
'passconf' => 'mypassword'
);
// followed by
$this->form_validation->set_data($dataToValidate);
您可以像上面一样在 Codeigniter 中轻松设置自定义数据。