在 Codeigniter 中,如何将第三个参数传递给回调(表单验证)?
Posted
技术标签:
【中文标题】在 Codeigniter 中,如何将第三个参数传递给回调(表单验证)?【英文标题】:In Codeigniter, how to pass a third parameter to a callback (form validation)? 【发布时间】:2012-02-03 04:29:30 【问题描述】:我目前正在使用表单验证类(在 Codeigniter 上)并设置规则。
使用两个参数 (codeigniter.com/user_guide/libraries/form_validation.html):
$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');
但是第三个参数呢?还有第四个……?有可能吗?
【问题讨论】:
【参考方案1】:这不是官方的,但有效
用','分割参数
$this->form_validation->set_rules('article_big_image','Gambar Besar','callback_check_picture[article_big_image,edit]');
function check_picture($image,$param)
$param = preg_split('/,/', $param);
$field = $param[0];
$action = $param[1];
echo $field.$action;
【讨论】:
【参考方案2】:不是没有扩展系统表单验证类。有关如何实现这一点的信息,请查看article。
或者,您可以使用以下方法访问回调函数中的 post 变量:
$this->input->post('field_name');
这可能会或可能不会帮助您。
【讨论】:
谢谢它应该可以工作(我稍后会尝试)但有点失望地得知没有像callback_test[abc,def,ghi]
这样的简单方法。【参考方案3】:
您可以使用 Array 获取更多字段的更多参数,如下所示:
$error = array(
array(
'field' => 'check', // the field name will come here
'label' => 'Check',
'rules' => 'required|here you can put the callback Function'
)
);
【讨论】:
【参考方案4】:
$this->form_validation->set_rules('article_big_image','Gambar','callback_check_picture[article_big_image,edit]');
function check_picture($image,$param)
$param = explode(',', $param);
$field = isset($param[0])?$param[0]:'';
$action = isset($param[1])?$param[1]:'';
echo $field.$action;
【讨论】:
您可以编辑其他答案而不是发布单独的答案,谢谢。【参考方案5】:你可以传递给规则
|callback_handle_is_unique_value_combinations[val1,val2]
比,
public function callback_handle_is_unique_value_combinations($str, $field)
$fields = explode(',', $field);
$val1 = $fields[0];
$val2 = $fields[1];
然后你做了你的cponarisons
【讨论】:
以上是关于在 Codeigniter 中,如何将第三个参数传递给回调(表单验证)?的主要内容,如果未能解决你的问题,请参考以下文章