gpt4 book ai didi

php - CodeIgniter - 验证空值

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:17 24 4
gpt4 key购买 nike

如何让 CodeIgniter 在没有具有必需规则但用户留空的字段上运行自定义规则?

我能想到的最好办法是在字符串为空的情况下向该字段添加一个空格,然后添加一个 trim 规则——但这感觉很老套。

示例规则#1

仅当另一个字段具有特定值时才需要该字段:

// depends[another_field.some_val]
public function depends($str, $field){
list($post_key, $post_val)=explode('.', $field);
if($_POST[$post_key] == $post_val){
return $str != "";
}
return true;
}

示例规则#2

仅当数据库中存在正则表达式时才需要字段:

// regex[table_name.col_name.some_val]
public function regex($str, $field){
list($table, $col, $post_val)=explode('.', $field);
// Grab the regex
$regex = $this->CI ->db
->limit(1)
->select($col)
->where($post_val, $_POST[$post_val])
->get($table)
->row($col);

return preg_match('/'.$regex.'/', $str) === 1;
}

最佳答案

为什么一个简单的任务需要不同的功能。使用 if..else

假设如果 input1 的值等于 value1,那么只需设置 需要 其他输入的验证规则,例如 input2

查看:

<form action="/controller_name/function_name/" method="POST">

<input type="text" name="input1" />
<input type="text" name="input2" />

<input type="submit" />
</form>


Controller :

class Controller_name extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
}

public function function_name()
{
if($this->input->is_post())
{
if($this->input->post('input1') == 'value1')
{
$this->form_validation->set_rules('input2', 'input2', 'required');
}

if ($this->form_validation->run() == FALSE)
{
// something's wrong in form!
}
else
{
// form is good, proceed!
}
}
}
}

关于php - CodeIgniter - 验证空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24829722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com