Передача данных из БД для обновления формы с помощью CI CRUD - PullRequest
0 голосов
/ 14 мая 2011

Я пытаюсь написать компактный контроллер обновлений для активности CRUD.Вот базовый код:

Контроллер:

function update($id)
    {           
        $this->form_validation->set_rules('name','Name','required');            
        $this->form_validation->set_rules('age','Age','required|is_numeric');           
        $this->form_validation->set_rules('country','Country','');

        $this->form_validation->set_error_delimiters('<br /><span class="error">', '</span>');

        if ($this->form_validation->run() == FALSE) {

            //Failed validation or first run
            $data = $this->my_model->get_record($id);

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

        } else {

            //Validation success, update DB

        }
    }

Вид:

<?php  

$attributes = array('class' => '', 'id' => '');
echo form_open('my_form', $attributes); ?>

<p>
        <label for="name">Name</label>
        <?php echo form_error('name'); ?>
        <br /><input id="name" type="text" name="name"  value="<?php echo set_value('name'); ?>"  />
</p>

<p>
        <label for="age">Age</label>
        <?php echo form_error('age'); ?>
        <br /><input id="age" type="text" name="age"  value="<?php echo set_value('age'); ?>"  />
</p>

<p>
        <label for="country">Country</label>
        <?php echo form_error('country'); ?>
        <br /><input id="country" type="text" name="country"  value="<?php echo set_value('country'); ?>"  />
</p>


<p>
        <?php echo form_submit( 'submit', 'Submit'); ?>
</p>

<?php echo form_close(); ?>

Это базовая структура, однако при первом запуске формынет подтвержденных данных.Поэтому я должен взять это из БД.Каков наилучший способ передать это в представление при первом запуске?И затем, как только форма была отправлена, если проверка не удалась, я хочу, чтобы показанные данные не перезагружались из БД снова.Какой лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 14 мая 2011

У вас должен быть другой метод для просмотра. Затем отправьте свою форму против метода «update». Там вы определяете форму form_validation, как у вас сейчас.

Я задал похожий вопрос. Смотрите эту ссылку

0 голосов
/ 06 августа 2013

сначала захватите данные в контроллере обновлений для редактирования, например

$query = $this->db->where('id',$id)->get('table_name');
$data['edit'] = $query->result_array();

, а затем проверьте их в файле вида

  value="<?php if(isset($edit[0]['age'])){echo $edit[0]['age'];}else{echo set_value('age');}?>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...