как получить значение поля ввода формы в codeigniter - PullRequest
5 голосов
/ 20 февраля 2010

значение FORM INPUT Help !!

// это просто ссылка на $ nm и $ fid из test_model //

  $data['fid']['value'] = 0;
  $data['nm'] = array('name'=>'fname',
                      'id'=>'id');

скажем, у меня есть один просмотр формы с

<?=form_label('Insert Your Name :')?>
<?=form_input($nm)?>

и функция для получения одной строки

 function get($id){
    $query = $this->db->getwhere('test',array('id'=>$id));
    return $query->row_array();
}

затем в контроллере .. index ($ id = 0)

и где-то в индексе

 if((int)$id > 0)
        {
            $q = $this->test_model->get($id);
            $data['fid']['value'] = $q['id'];
            $data['nm']['value'] = $q['name'];
        }

и в таблице mysql есть что-то вроде 1. victor, 2. visible и т. Д. В качестве значения имени

но здесь не берется значение name и id из form_input и не отображается снова в форме form_view в том же поле ввода, что и victor и т. Д., Чтобы обновить и отправить его обратно в базу данных ...

кто-нибудь, пожалуйста, помогите! и, пожалуйста, будьте спокойны, поскольку я новичок в CI !!

Ответы [ 3 ]

5 голосов
/ 20 февраля 2010

Исходя из вашего комментария к моему первому ответу, вот пример контроллера, модели и представления для обновления пользовательской записи, извлеченной из таблицы в базе данных.

Контроллер

class Users extends Controller
{
    function Users()
    {
        parent::Controller();
    }

    function browse()
    {
    }

    function edit($id)
    {
        // Fetch user by id
        $user = $this->user_model->get_user($id);

        // Form validation
        $this->load->library('form_validation');
        $this->form_validation->set_rules('name', 'Name', 'required');

        if ($this->form_validation->run())
        {
            // Update user
            $user['name'] = $this->input->post('name', true);
            $this->user_model->update_user($user);

            // Redirect to some other page
            redirect('users/browse');
        }
        else
        {
            // Load edit view
            $this->load->view('users/edit', array('user' => $user));
        }
    }        
}

Модель

class User_model extends Model
{
    function User_model()
    {
        parent::Model();
    }

    function get_user($user_id)
    {
        $sql = 'select * from users where user_id=?';
        $query = $this->db->query($sql, array($user_id));
        return $query->row();
    }

    function update_user($user)
    {
        $this->db->where(array('user_id' => $user['user_id']));
        $this->db->update('users', $user);
    }
}

View

<?php echo form_open('users/edit/' . $user['user_id']); ?>
<div>
    <label for="name">Name:</label>
    <input type="text" name="name" value="<?php echo set_value('name', $user['name']); ?>" />
</div>
<div>
    <input type="submit" value="Update" />
</div>
<?php echo form_close(); ?>
0 голосов
/ 20 февраля 2010

От вашего вопроса я думаю, что вы хотите отобразить форму для редактирования записи о человеке в базе данных.

Код контроллера

// Normally data object is retrieved from the database
// This is just to simplify the code
$person = array('id' => 1, 'name' => 'stephenc');

// Pass to the view
$this->load->view('my_view_name', array('person' => $person));

Посмотреть код

<?php echo form_label('Your name: ', 'name'); ?>
<?php echo form_input(array('name' => 'name', 'value' => $person['name'])); ?>

Не забудьте повторить то, что возвращается из form_label и form_input. Это может быть, где вы идете не так.

0 голосов
/ 20 февраля 2010

Трудно увидеть проблему по фрагментам кода, пожалуйста, попробуйте дать немного больше информации о структуре вашего приложения и месте размещения этих примеров кода.

Предположим, что в последнем листинге кода («где-то в индексе») вы получаете $ id из формы, но вы определяете идентификатор поля ввода формы как массив «id» («name» => «fname», 'id' => 'id'), а не целочисленное значение, поэтому, возможно, именно в этом заключается проблема.

Куда передается массив $ data в третьем листинге кода?

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