我在Codeigniter中以三种方式检索了表单输入?哪个是正确的方法

时间:2018-12-23 11:20:30

标签: codeigniter

我在Codeigniter中以三种方式检索了表单输入吗?我不确定哪一个是正确的。我给了这一行

    $this->load->view('userview',$data); 

这是正确的吗?从表单输入数据的正确方法是什么?什么时候应该使用数组?

我也想知道记录是否被成功添加。提交表单后,我必须使用哪个函数,并将其放在哪里?

查看文件夹文件名 userview.php

userview.php
<form name="f1" action="" method="post"/>
<table width="500" border="1">
<tr>
    <td>UserName</td>
    <td>:</td>
    <td><input type="text" name="username" value=""/></td>
</tr>
<tr>
    <td>Password</td>
    <td>:</td>
    <td><input type="password" name="password" value=""/></td>
</tr>
<tr>
    <td>Email</td>
    <td>:</td>
    <td><input type="text" name="email" value=""/></td>
</tr>
<tr>
<td colspan="3"><input type="submit" name="submit" value="Save"/></td>
</tr>
</table>
</form>

第一个创建的数组并存储到变量中:

public function index()
{
    $data = array();
    if($this->input->post('submit') != NULL ){
        $postData = $this->input->post();
        $data['response'] = $postData;
    }
    $this->load->view('userview',$data);
}

第二个:在数组中检索输入变量

public function index()
{
    $data['response']=array('username' => $this->input->post('username'),
    'password' => $this->input->post('password'),
    'email' => $this->input->post('email'));
    $this->load->view('userview',$data);           
}

第三种:在索引函数中创建了一种方法

public function index()
{
    $this->load->view('userview');
    $this->getvalue();         
}
public function getvalue()
{
    if($this->input->post('submit')!==null)
    {
        $data['response']=array('username' => $this->input->post('username'),
        'password' => $this->input->post('password'),
        'email' => $this->input->post('email'));
        $this->load->view('viewuser',$data);
    }
}

2 个答案:

答案 0 :(得分:1)

一切正常,当我有多个字段时,我个人使用以下内容:

$UserDetails = $this->input->post(['username', 'email', 'password']);

这将返回一个键=>值对数组,其中包含我只需要的3个字段。

在第一个示例中,您可能会返回不需要的额外字段。 第二个例子对我来说很冗长,但是还可以。 第三个例子对我来说也很冗长,但是还可以。

我将使用表单验证,而不是手动检查表单是否已发布。

$data = [];
$form_validation = array(
        ['field' => 'username', 'label' => 'Username', 'rules' => 'trim|required'],
        ['field' => 'email', 'label' => 'Email', 'rules' => 'trim|required|email'],
        ['field' => 'password', 'label' => 'Password', 'rules' => 'trim|required'],

);

$this->form_validation->set_rules($form_validation);
if ( $this->form_validation->run() === false ) {
    // set some error messages here
}else{
    // get data here
    $data['UserDetails'] = $this->input->post(['username', 'email', 'password']);
}
// pass data to view ??
$this->load->view('view', $data)

答案 1 :(得分:0)