Параметр не установлен после проверки формы в CodeIgniter - PullRequest
1 голос
/ 02 декабря 2011

Я передаю переменную $id по URL и загружаю данные в обновление формы, но когда я собираюсь проверить форму, значение $id не распознается.

function myfunction() {
    $id = $this->uri->segment(4); 
    echo $id;   //yes, print the value  

    $data_user = $this->admin_model->query_data_user($id);
    $direccion = $data_user[0]->address;
    $phone = $data_user[0]->phone;

    $this->data['address'] = array(
            'name' => 'address',
            'id' => 'address',
            'value' => $address,
            'class' => 'input',
    );

    $this->data['phone'] = array(
            'name' => 'phone',
            'id' => 'phone',
            'value' => $phone,
            'class' => 'input',
    );

    echo $id;  //yes, print the value

    $this->form_validation->set_rules('address', 'Address', 'xss_clean|max_length[100]');
    $this->form_validation->set_rules('phone', 'Phone', 'required|xss_clean|max_length[20]|is_natural_no_zero');

    if ($this->form_validation->run() == true) {
        echo $id;  //here NOT PRINT $id
        $data = array(
                'address' => $this->input->post('address'),
                'phone' => $this->input->post('phone'),
        );

        $id = $this->uri->segment(4); 
        echo $id;  //here not print the value $id

        $this->ion_auth->update_user($id, $data); 
        $this->load->view('includes/template_mensajes', $data);
    }
    $this->load->view('users/update_user', $this->data);
}

Значение $id не распознается при проверке моей формы. В чем моя ошибка?

Ответы [ 4 ]

6 голосов
/ 02 декабря 2011

Куда вы отправляете свою форму. Вы уверены, что передаете идентификатор в URI атрибута действия вашей формы.

Например, открытый тег вашей формы должен выглядеть примерно так:

<form action="/admin/myfunction/<?= $id ?>">

Или с помощью помощника codeigniter

echo form_open('admin/myfunction/' . $id);

1 голос
/ 02 декабря 2011

Если я не ошибаюсь и myfunction - это действие в вашем контроллере, которое называется ... "mycontroller", скажем так. Тогда вам просто нужно отправить этот URL: http://localhost/mycontroller/myfunction/1234

И обновите свое действие, приняв идентификатор параметра $ id. CodeIgniter позаботится обо всем остальном.

function myfunction($id) {
...
}
0 голосов
/ 25 апреля 2016

После добавления моего идентификатора в конец моего URL, например, www.whsconcepts.com/?id=100, Я перезвоню в моей форме. Например:

form_open('the url I want' . $_Get ['id'])
0 голосов
/ 02 декабря 2011

Вам нужно передать эту переменную $ id в форме как скрытое поле и вернуть ее как значение POST.

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