Codeigniter问题:
我刚刚使用$ this-> form_validation-> set_rules(等等)设置我的第一个表单,在验证运行后,我应该使用$ email = $ this-> input->来发布值。发布('email',TRUE);或者表单验证是否已经发布了值?如果是这样 - 我如何返回这些值?
谢谢, 助行
答案 0 :(得分:2)
执行验证后,$_POST
数组中的值仍然存在,因此根据您的应用和您的需求,您可能需要也可能不需要将它们分配给变量。
扩展 -
如果你要进行进一步的处理,那么最好做$email = $this->input->post('email');
,但你也可以将整个$ _POST数组传递给模型,例如,无需进行任何额外的输入 -
$this->my_model->do_something($this->input->post())
视课程要求而定。
答案 1 :(得分:1)
input-> post表示PHP中$ _POST超全局数组中的任何内容。这是在Codeigniter对您的脚本执行任何操作之前设置的 - 这也意味着Codeigniter从$ _POST填充input-> post。因此,当您“发布”值时,您只需提交一个方法设置为POST的表单。合理?
从那里CI_Controller类处理其余部分,您应该能够在验证之前,期间或之后的任何时间访问input-> post。
答案 2 :(得分:1)
是的 - 你是对的。
Yout想要使用以下语法检索帖子值:
从表单处理更新数据的简单方法是:
// the if syntax is incorrect, i forget the exact wording
if ($this->form->valid()){
$updateData = array(
'email' => $this->input->post('email'),
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
);
// check uniqueness of email
$this->db->where('email', $updateData['email']);
$uniqueQuery = $this->db->get('accounts');
if ($uniqueQuery->num_rows() == 0){
$this->db->insert('accounts', $updateData);
}
}