codeigniter заполнить форму из базы данных - PullRequest
6 голосов
/ 26 мая 2009

В контроллере у меня есть ...

function update($id = null)
{
    $this->load->database();

    // more code

    $data = array();
    $data = $this->db->get_where(
            'users',
            array(
            'id' => $id
            )
        );
    $data = $data->result_array();
    $data = $data[0];

    // more code

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

По-моему, у меня есть ...

<h5>Username</h5>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />

<h5>Email</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />

<h5>Email Confirmation</h5>
<input type="text" name="emailconf" value="<?php echo set_value('emailconf'); ?>" size="50" />

<h5>Password</h5>
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />

<h5>Password Confirmation</h5>
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />

set_value () не читает $ data

поиск значения = ""

в http://codeigniter.com/forums/viewthread/103837/

Постер использует только функцию set_value () между "" in value = "".

Мне интересно, как сделать то же самое, но я не могу заставить его работать. Помощь

Ответы [ 5 ]

21 голосов
/ 06 апреля 2010

set_value требует 2 параметра. имя поля И значение.

Вам нужно:

value="<?php echo set_value('username', $username); ?>"

при условии, что вы передаете $ data ['username'] и т. Д.

4 голосов
/ 27 мая 2009

Я думаю, вы неправильно передаете значение в представление.

В контроллере положено:

$data = $this->db->get_where(
        'users',
        array(
        'id' => $id
        )
    );
$data = $data->result_array();

$data['result'] = $data[0];

затем внутри вида:

<h5>Password Confirmation</h5> <input type="text" name="passconf" value="<?php echo $result['passconf']; ?>" size="50" />
3 голосов
/ 28 мая 2009

Попробуйте это:

Контроллер:

$data = array();
$data = $this->db->get_where(
        'users',
        array(
        'id' => $id
        )
    );
$data = $data->result_array();
$data['view_username'] = $data['username'];

Вместо $ date [0] я использую имя столбца, но это ваше решение

Вид:

<h5>Username</h5> <input type="text" name="username" value="<?=$view_username?>" size="50"/>

<?= => - это короткий тег PHP, об этом читайте в руководстве пользователя codeigniter

С уважением,

Sylvio

1 голос
/ 20 января 2011

set_value () предназначен для работы с проверкой формы CI.

Когда форма загружается впервые, set_value () может заполнить поле значением по умолчанию, используя его второй параметр. После отправки формы ее можно снова отобразить, и поле будет заполнено значением, которое было отправлено, при условии, что оно проверено на валидацию.

См. Также http://codeigniter.com/forums/viewthread/96617/ - есть несколько ошибок с set_value (), которые документы не уточняют.

Применимо до CI 1.7.3.

0 голосов
/ 08 марта 2011

Попробуйте присвоить значения по умолчанию переменной $_POST в вашем контроллере, например $_POST['email'] = 'email';

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