【发布时间】:2011-06-05 01:22:42
【问题描述】:
我有一个文本输入,用户在其中提交 CSV,例如red, blue, red, yellow
如果用户提交重复的值,例如red,如上所示,我想删除重复的值。我开始进行回调,但我不确定如何完成它。
//callback rule
function _remove_dublicate($str)
{
$val = strtolower($str); //make everything lowercase
$colors = str_getcsv($val); //create array
$result = array_unique($colors); //remove duplicates
}
如果有重复,我应该怎么做才能将$result的新字符串提交到数据库?
下面是我的表单验证
$this->form_validation->set_rules('colors', 'Colors', 'trim|required|xss_clean|regex_match[/^[a-z, ]+$/i]|callback__remove_dublicate');
if ($this->form_validation->run() == FALSE) //if validation rules fail
{
$this->load->view('edit/form');
}
else //success
{
$data = array (
'colors' => $this->input->post('colors')
);
$this->My_model->colors_update($data);
}
编辑
根据 Cabaret 的建议,我在 else 声明中添加了这个以删除重复项
$colors = str_getcsv($this->input->post('colors')); //create array
$result = array_unique($colors); //remove duplicates
$comma_separated = implode(",", $result); //add back CSV string
$data = array (
'colors' => $comma_separated
);
它似乎有效
【问题讨论】:
标签: php forms codeigniter callback