2013-11-21 3 views
0

Всегда путают о повторной отправке формы. Я знаю, что заголовок и сессия - правильный путь. Но я не знаю, как я могу правильно использовать кодигнитер. Пустьлучший способ предотвратить повторную отправку формы codeigniter

Для одной вставки и запроса на обновление

$this->db->query(' insert/up query'); 
    $this->session->set_flashdata('success_message','successfully inserted'); 
    redirect('my_contoller/home/index'); 

Для прохода $data массива

$data['pass_data']="some array elements"; 
$this->session->set_flashdata('pass_data_from_flash_data',$data['pass_data']); 
redirect('my_contoller/home/index',$data); 

Если выше техники правы, как я могу передать запрос данных для извлечения. Предположим, у меня есть запрос, который возвращает много данных. Такие, как

$query = $this->db->query(" a query which return large data"); 
$data['return_large_result']=$query->result_array(); 

Я просто спутать с использованием set_flashdata функции. Правильно?

ответ

1

Вышеуказанный метод, упомянутый вами, является valid web development design pattern. Codeigniter немного беспорядочен для этого метода, но по сути да, это правильный путь в Codeigniter.

Другие рамки, такие как Laravel, поддерживают эту функцию лучше, позволяя вам получить доступ к старым входам через Input::old() среди других методов.

+0

, но если данные больше, чем память сеанса, как я могу управлять. Я не знаю о CI flash-памяти. Но один вопрос был бы Если данные более чем за тысячу массивов? – Imran

+0

Затем вам нужно использовать другой метод хранения, например, временно хранить его в файле, базе данных или в другом хранилище данных с указателем на это в сеансе. Эти случаи не распространены, поэтому эти типы форм могут не использовать метод POST/REDIRECT/GET. – SamV

Смежные вопросы