Я искал много сообщений здесь и в других местах, но не могу найти решение моей проблемы. У меня есть страница, которая отображает записи базы данных: database.php. Эти записи могут быть отфильтрованы с помощью формы. Когда я их фильтрую и показываю только те, которые меня интересуют, я могу щелкнуть запись (как ссылку), которая приведет меня к этой странице записей (через php GET). Когда я нахожусь на этой странице записей (т.е. "View.php? Id = 1" ) и нажимаю кнопку "Назад" (back to 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 = whatever". На этой странице я просто получаю идентификатор от URL-адреса, чтобы отобразить эту единственную запись:
view.php:
<?php
$id = $_GET[ "id" ];
$q = "Select * from table where id = '" . $id . "'";
$r = mysql_query( $q );
while ( ) {
// display entry
}
?>
Если я сейчас нажал кнопку "Назад", форма в файле database.php(тот, который используется для фильтрации результатов БД) требует подтверждения для повторной отправки. Не только это очень раздражает, но и бесполезно для меня.
Как я могу это исправить? Надеюсь, что примеры кода и объяснение моей проблемы достаточно. Если не дайте мне знать, и я попытаюсь указать.