CodeIgniter: избегайте вставки повторяющихся записей при обновлении страницыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 CodeIgniter: избегайте вставки повторяющихся записей при обновлении страницы

Сообщение Anonymous »

У меня есть форма (форма цитаты), и когда я заполняю форму, у меня выполняется 2 запроса. Один запрос выбирает столбцы из таблицы, а другой запрос вставляет информацию в таблицу. Я успешно могу получить и вставить запрос одновременно. Но проблема в том, что когда я обновляю страницу, она всегда вставляет повторяющуюся запись. Как мне этого избежать и не вставлять записи повторно. Я попробовал несколько подходов, таких как сеансы и оператор if else, но это не сработало.

Мои коды: -

Модель:

Код: Выделить всё

 function insertToQuoteForm() {

$postcode = $this->input->post('pick_add');
$del_postcode = $this->input->post('drop_add');
if ($postcode != '' ) {
$fName = $this->input->post('bk_name');
$lName = $this->input->post('bk_lname');
$email = $this->input->post('bk_email');
$contact = $this->input->post('bk_contact');
$postcode = $this->input->post('pick_add');
$del_postcode = $this->input->post('drop_add');
$carMake = $this->input->post('car_list');
$carModel = $this->input->post('car_models');
$carmanYear = $this->input->post('car_man_year');
$carType = $_POST['bodytypeselect'];
$insertFormQuery = "INSERT INTO Quote_Form( First_Name, Last_Name, Email, Phone, Origin, Destination, CarMake, CarModel, ManYear, CarType) VALUES
( '" . $fName ."', '" .$lName."', '" . $email."', '" . $contact."', '" . $postcode."', '" . $del_postcode."', '" . $carMake."', '" . $carModel."', '" . $carmanYear."', '" . $carType ."')";
$insertDetails = $this->db->query($insertFormQuery);

$insert_id = $this->db->insert_id();
return $insert_id;

}
else {
redirect ( base_url());

}
}
Контроллер:

Я использую quoteNo, чтобы отобразить в качестве ссылочного номера последний вставленный идентификатор

Код: Выделить всё

$data['quoteNo'] = $this->PostModel->insertToQuoteForm();
Логика такова:

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

Подробнее здесь: https://stackoverflow.com/questions/519 ... ge-refresh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»