我在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);
}
}
答案 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)