Я просмотрел много сообщений здесь и в других местах, но, похоже, не нашел решения своей проблемы. У меня есть страница, на которой отображаются записи базы данных: database.php. Эти записи можно фильтровать с помощью формы. Когда я фильтрую их и отображаю только те, которые мне интересны, я могу щелкнуть запись (как ссылку), которая приведет меня на эту страницу записей (через php GET). Когда я нахожусь на этой странице записей (т.е. "view.php? Id = 1") и нажимаю кнопку "Назад" (назад к database.php), форма фильтра требует подтверждения повторной отправки формы. Есть ли способ предотвратить это?
вот несколько (упрощенных) примеров кода:
Database.php:
<form>
<select>
<option>1</option>
<option>2
<option>
</select>
<input type="submit" name="apply_filter" />
</form>
<?php
if ( isset( $_POST[ "apply_filter" ] ) ) { // display filtered entries
$filter = $_POST[ "filter" ];
$q = "Select * from table where col = '" . $filter . "'";
$r = mysql_query( $q );
} else { // display all entries
$q = "Select * from table";
$r = mysql_query( $q );
}
while ( $rec = mysql_fetch_assoc( $r ) ) {
echo "<a href='view.php?id=" . $rec[ "id" ] . "'>" . $rec[ "name" ] . "</a><br />"; // this is where the link to the view.php page is...
}
?>
Как уже упоминалось, если я нажму на ссылку, я перейду на «view.php? Id = something». На этой странице я просто получаю идентификатор из URL-адреса для отображения этой единственной записи:
view.php:
<?php
$id = $_GET[ "id" ];
$q = "Select * from table where id = '" . $id . "'";
$r = mysql_query( $q );
while ( ) {
// display entry
}
?>
Если я сейчас нажму кнопку «Назад», форма на database.php (та, которая используется для фильтрации результатов БД) потребует подтверждения для повторной отправки. Это не только очень раздражает, но и бесполезно для меня.
Как я могу это исправить? Надеюсь, примеров кода и объяснения моей проблемы достаточно. Если нет, дайте мне знать, и я постараюсь уточнить.
Post-Redirect-Get
, см. en.wikipedia.org/wiki/Post/ Перенаправить / получить, а также stackoverflow.com/questions/15288229/ - person Adrien Be   schedule 29.07.2014