Php запретить обновление страницы

Передайте переменные формы в php. Запретить обновление страницы

Я работаю над веб-сайтом, который отображает некоторые данные, которые извлекаются из базы данных с использованием php. Теперь есть и другие chekcboxes, которые включены в форму. Основываясь на пользовательском вводе этих флажков, я хотел, чтобы div отображал данные для перезагрузки. Например, после того, как пользователь проверит, что одно из полей и кликов применяется, отображение div должно пересчитать результаты. Я понимаю, что данные формы должны быть переданы на функцию ajax. Что бы преобразовать данные формы в объект json и отправить его в файл php. Затем файл php может обращаться к переменным формы с помощью $ _POST [‘var’]. Надеюсь, что теория верна. Тем не менее, во время выполнения у меня есть ряд проблем. Во-первых, php-код, который обрабатывает переменные формы на той же странице, что и форма. Я хочу знать, как направить данные формы из функции ajax в этот код. Во-вторых, функция ajax выполняется правильно, форма отправляется, страница не перезагружается (по желанию), но, тем не менее, я не могу получить доступ к представленным переменным в php-коде. Вот мой код:

Filter by :

" method ="post" href="#">-->

Location

while($row = mysqli_fetch_array($result)) < array_push($filter_array[0],$row['LOCATION']); array_push($filter_array[1],$row['PARTY_TYPE']); array_push($filter_array[2],$row['GENRE']); array_push($filter_array[3],$row['HAPPY_HOURS']); array_push($filter_array[4],$row['OUTDOOR_ROOFTOP']); >for($i=0; $i ?>
  • " ?>/>?>

Party Type

  • " ?>/>?>

Genre

  • " ?>/>?>

Happy Hours

  • else ?>" ?>/>?>

Outdoor/Rooftop

  • " ?>/>?>



Sort by :?>/>?>/>


-->

Venues


'"; $i=$i+1; if($i < count($_POST[$var_name]))< $append = $append.","; >else < $append=$append.")"; >> return $append; > //We first need to check if the filter was set in the previous page. If yes, then the query needs to be built with a 'where'. If not the query will just display all values. //We also need to check if order by is required. If yes, we will apply the corresponding sort, else we will just sort on the basis of location. //The below 2 variables do the same. $filter_set = 0; $filter_variables = array('location','party_type','genre','happy_hours','outdoor_rooftop'); $map_array = array(); if(isset($_POST['location'])) < $filter_set = 1; >if(isset($_POST['party_type'])) < $filter_set = 1; >if(isset($_POST['genre'])) < $filter_set = 1; >if(isset($_POST['happy_hours'])) < $filter_set = 1; >if(isset($_POST['outdoor_rooftop'])) < $filter_set = 1; >if($filter_set == 1) < $query = "Select * from venue_list where "; $append_query=array(5); $j=0; foreach($filter_variables as $var)< if(isset($_POST[$var]))< $append_query[$j] = query_builder($var); $j=$j+1; >> $h=0; //Once all the individual where clauses are built, they are appended to the main query. Until then, they are stored in an array from which they are //sequentially accessed. foreach($append_query as $append) < $query=$query.$append; $h=$h+1; if($h < $j)< $query=$query." AND "; >> > else < $query = "Select * from venue_list"; >$result = mysqli_query($con,$query); while($row = mysqli_fetch_array($result)) < $name = $row['NAME']; $img = $row['IMAGE_SRC']; $addr = $row['ADDRESS']; $location = $row['LOCATION']; echo ""; ?>
" height="100" width="100">?>

Все 3 компонента являются частью index.php. Пожалуйста, сообщите мне, если код нечитабельный или неудобный, я его отредактирую. Ожидание решения. Спасибо.

Источник

Не обновлять страницу php

На моей странице после того, как пользователь отправил код, сценарий создает новую запись в базе данных. Если после того, как он представит код, пользователь нажмет обновление, он сделает дубликат записи в базе данных. Если он обновит 10 раз, он сделает 10 записей с теми же данными. Есть ли способ заставить страницу не обновляться во второй раз? Или ограничить количество обновлений, которые может получить страница? Какие решения можно применить, чтобы избежать этой ситуации? Заранее спасибо.

Разместите данные на другой странице. После вставки в базу данных, перенаправить поток на исходную страницу

Самый простой способ — сделать перенаправление на ту же страницу после вставки в БД, чтобы получить потерянные параметры post / get.

@Class Класс, я понимаю. Я думаю, лучший способ — перенаправить на ту же страницу после выполнения запроса.

5 ответов

При работе с POST-данными вы всегда должны использовать настройку POST/REDIRECT/GET (Wikipedia). Таким образом, когда пользователь обновляет целевую страницу, ничего не происходит, кроме обновления.

Лучший способ для метода перенаправления — использовать код состояния 303 (коды состояния HTTP), который сообщает браузеру, что POST-данные были получены, обработаны и что пользователь должен перейти на новую страницу для «ответа». Когда пользователь нажимает «назад», он или она должны получить сообщение о том, что страница больше недоступна или действительна (это отключает повторную передачу по этому маршруту).

Вы можете использовать этот пример для перенаправления на другую страницу (довольно общий пример, но у меня есть базовый код, который я мог бы использовать):

header("HTTP/1.1 303 See Other"); header("Location: http://www.yourdomain.com/desitnation.php"); 

Похоже, PHP-скрипт, который создает форму, тот же, что и обрабатывает. Вы можете рассмотреть возможность создания отдельного PHP-скрипта для обработки формы. Например:

Затем, в конце action_handler.php , вы должны перенаправить на исходную страницу следующим образом:

header('Location: original_page.php'); 

Прежде чем добавлять запись в таблицу данных, используйте select query чтобы проверить, что данные существуют или нет в таблице данных и перенаправляют страницу на новую страницу, скажем спасибо или подтверждение вставки.

Select id from TABLE where data='".$_POST["data"]."'; . . if(empty($rs["id"]))< // insert the data in table; >else < // do edit or skip to redirect >
header("location:thankyou.php"); exit(); 

После того, как записи будут сохранены в базе данных, используйте header() и перенаправьте их на одну страницу.

Проверьте ответ на этот вопрос, возможно, вы можете использовать тот же код.

Простой unset($_POST[«data»]) после вставки его в базу данных или header(‘location:.’) try header(‘location:.’)

Ещё вопросы

  • 0 Добавить фиктивные данные в mySql Result
  • 0 Проверка в PHP не понимается
  • 0 Обработка списка в C ++: инициализация min первым значением списка
  • 0 Включая собственный шрифт по HTML
  • 0 Как использовать только один ВХОДНОЙ ТИП = «текст» для проведения двух опросов
  • 0 Javascript не работает после загрузки сервера
  • 0 Python утилизация данных с неправильной HTML-структурой
  • 1 Панель запросов ADF с таблицей не работает
  • 0 Отправить Push-уведомление на все токены в базе данных MySql
  • 0 Разве этот код jQuery не должен возвращать все входные данные внутри # product-create-2?
  • 0 Отображение данных из двух таблиц в Java MySQL
  • 0 PHP class_exists — получение фатальной ошибки: нельзя вместо этого переопределить класс?
  • 1 Gmail, не получающий определенные сообщения, отображается в отправленной папке
  • 1 Отображение полей месяца в DatePickerDialog в числовом формате вместо алфавитного
  • 0 Как переименовать ссылки с вопросительным знаком?
  • 1 Android Design: Intentservice вызывает приложение не отвечает
  • 1 Потоковые твиты, в которых упоминается @friendname
  • 1 Почему каждое исключение является системным исключением?
  • 0 Отправлять почту всякий раз, когда журнал очищается в Magento
  • 0 JQuery Datepicker: как отрицать это, используя мой CSS
  • 0 Делать фотографии, проверять GPS и другие вещи на Android с помощью приложения HTML 5?
  • 1 Почему мой обратный вызов отображает разные результаты в .NET и Powershell?
  • 1 Разобрать данные и представить изображение PNG
  • 1 C # DataGridView получить выбранный номер строки Исключение
  • 0 MySQL объявление переменной, вызывающей синтаксическую ошибку
  • 1 Ограничить Команды
  • 1 Покажите ошибку, если широта или долгота имеют неправильное форматирование
  • 1 Сопоставить элементы в ListView от одного адаптера со значениями из другого ListView и адаптера
  • 1 Рассчитайте время в пути между двумя точками (координатами), используя Google Maps API
  • 0 Объявите переменную в базе данных MySQL «только для чтения»
  • 1 Как создать потокобезопасный настраиваемый HTML-результат в Testng
  • 1 Можно ли сделать JS-запрос с ограниченной пропускной способностью?
  • 0 Рекомендации JQuery: запускайте эффекты между элементами в последовательности
  • 1 Класс GMS Task : может ли getResult () вернуть нуль, если isSuccessful ()?
  • 1 Что LSTM делает с состояниями в пакете? Второй элемент первого пакета наследует состояние от первого элемента первого элемента?
  • 1 Сбой выпуска сборки Android с причиной: java.lang.ArrayIndexOutOfBoundsException: 213 (проблема защиты)
  • 1 Невозможно запустить тест из-за appium appiumDriver
  • 0 Отображение / скрытие div в зависимости от значения Select
  • 0 Определение правил стиля для списка навигации (css)
  • 1 Асинхронная проблема с несколькими задачами
  • 1 Matlab to Python Matrix Code
  • 1 Связывание кода начальной загрузки с файлом .aspx.cs
  • 0 Html электронная почта для outlook.com и gmail.com
  • 1 Привязка элемента в дочернем представлении к свойству родительского ViewModel
  • 0 Получение данных формы с помощью PHP
  • 0 получить идентификатор / имя класса по клику и сохранить текстовый файл на сервере с идентификатором / классом в качестве имени файла
  • 1 Привязка функции обратного вызова при использовании Async Waterfall
  • 0 Войти через отдых используя Restangular
  • 1 Выбор массива, чтобы стать свойствами объекта
  • 1 Как проанализировать вывод Json из API Visistat с помощью Json.net

Источник

Как сделать чтобы страница не обновлялась после отправки формы

Доброго времени суток дорогие Форумчане PHP знаю не очень хорошо, поэтому прошу вас выручить.
Написал простой скрипт изменения цены при изменении размера товара. Работает так писать весь код не стал)
Циклом из БД выводятся размеры в option. При изменении option Автоматически срабатывает submit. И по value из option в бд происходит поиск цены и соответсвенно она выводится. Код работает на ура, только одно но( При срабатывании submit страница прыгает вверх(происходит обновление), и чтобы посмотреть цену приходится спускаться обратно. Помогите пожалуйста чтобы при отправке формы страница оставалась на том месте где она была Попробовал сделать бы сам, но даже в голову не приходит как это реализовать:'( Надеюсь на вашу помощь. Заранее спасибо.

form action =""> select onChange="submit()" > option value="$row_size['id_size']?>"> option> select>

Как сделать запрос к php файлу, чтобы страница не обновлялась?
Всем привет. Подскажите пожалуйста, как обратиться к php файлу и вернуть значение на страницу без.

Как сделать, чтобы после заполнения текстбокса не обновлялась вся страница
Я новичок в ASP.NET Делаю сайт. В середине страницы сделал текстбокс и кнопку. По событию.

Как сделать так чтобы при нажатии на кнопку не обновлялась страница
Как сделать так чтобы при нажатии на кнопку не обновлялась страница?

Почему обновляется страница и как сделать так, чтобы она не обновлялась
Есть метод в контроле, в который передается или нет фаил. Когда я обращаюсь к этому методу и.

Источник

Предотвратить обновление страницы при нажатии кнопки

Подскажите пожалуйста есть код отправки кол-во товара в корзину на уровне каталога, все работает как надо, но при нажатии на кнопку страница обновляется! как этого избежать,сто бы оставаться на той же позиции?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 ); function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) { if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) { $html = ' 
'; $html .= woocommerce_quantity_input(array(), $product, false ); $html .= ''; $html .= ''
; } return $html; }

Источник

Читайте также:  Shell exec php windows
Оцените статью