Я получил форму ввода тремя способами в codeigniter?какой правильный путь - PullRequest
0 голосов
/ 23 декабря 2018

Я получил входные данные формы тремя способами в 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 голосов
/ 23 декабря 2018

Все в порядке, Лично я использую следующее, когда у меня есть несколько полей:

$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)
0 голосов
/ 23 декабря 2018

Вот, пожалуйста:

Проверка формы: https://www.codeigniter.com/userguide3/libraries/form_validation.html
Класс ввода: https://www.codeigniter.com/userguide3/libraries/input.html
Помощник по формам: https://www.codeigniter.com/userguide3/helpers/form_helper.html

Удачи:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...