自己提出フォームです。選択した値がSQLクエリのWHEREパラメーターとして渡される3つの独立した選択リストがあります。
ボタンをクリックすると、すべてのデータが適切に表示され、十分に制限されており、リンク ページは以下のとおりです。しかし:
ページ リンクをクリックすると、結果セットとすべてのリンクが見えなくなります (選択リストのみが表示されます)。値が設定されていない場合はフォームを表示し、値が設定されている場合はフォームを処理する isset 条件に関連していると思います。したがって、最初の結果セットは正しく表示されますが、2 番目のページに移動しようとすると、選択リストがリセットされているため、代わりにリンクをクリックするとボタンをクリックしていないため、選択リストが設定されていないとフォームが解釈し、したがって、html フォームではないものはすべて消去されます。
ページネーション コードにエラーはありません。エラーは、このフォームをこのページネーション メソッドにリンクする方法にあります。そして、私は自分がどのようにすべきかを知ることができません。
if (isset($_POST['submitted'])) { /***************IF IT IS SET, WE PROCESS THE VALUES*************************/
$oldcountry = FALSE;
$oldfrom = FALSE;
$oldinto = FALSE;
// Here just checking that all variables have been selected
if (isset($_POST['country']))
{
$oldcountry = $_POST['country'];
$country = filter_var($oldcountry, FILTER_SANITIZE_STRING);
}
else {
echo 'Please, select a country';
}
if (isset($_POST['from_language']))
{
$oldfrom = $_POST['from_language'];
$from_language = filter_var($oldfrom, FILTER_SANITIZE_STRING);
}
else {
echo 'no has metido el from language';
}
if (isset($_POST['into_language']))
{
$oldinto = $_POST['into_language'];
$into_language = filter_var($oldinto, FILTER_SANITIZE_STRING);
}
// so, once we have selected them and clicked the button, we go for the query
// and paginate the results
require_once('bdd1.php');
$per_page = 6;
$pages_query = mysql_query("SELECT COUNT(FName)
FROM work_assignment, developer
WHERE AES_DECRYPT(country, 'elperrodesanroquenotienerabo') = '".$country."'
AND from_language = '".$from_language."'
AND into_language = '".$into_language."'
AND work_assignment.developer_id = developer.developer_id
ORDER BY FName ASC ");
$pages = ceil (mysql_result($pages_query, 0) /$per_page);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$query = mysql_query("SELECT FName
FROM work_assignment, developer
WHERE AES_DECRYPT(country, 'elperrodesanroquenotienerabo') = '".$country."'
AND from_language = '".$from_language."'
AND into_language = '".$into_language."'
AND work_assignment.developer_id = developer.developer_id
ORDER BY FName ASC LIMIT $start, $per_page");
while ($query_row = mysql_fetch_assoc($query)){
echo '<p>', $query_row['FName'], '</p>';
}
if ($pages >=1) {
for($x = 1; $x <=$pages; $x++){
echo '<a href="?page='.$x. '">'.$x.'</a> ';
}
}
} /************* END OF IF ISSET TO PROCESS *******************************/
?>
更新 更新
すべての助けを借りて、ページ リンクを機能させる URL 文字列を作成することができました。それでも、それを表す変数を埋め込む代わりに国名 (基本的にはエストニア) をハードコードしたため、まだ微調整する必要がありますが、その URL を適切に記述することはできません。
これは機能します:
echo '<a href="?country=Estonia&from_language=Russian&into_language=Latvian&submitted=true&
page='.$x. '">'.$x.'</a> ';
エストニアを $country に、ロシア語を $from_language に、ラトビア語を $into_language に置き換えるだけです。しかし、一重引用符と二重引用符とドットの可能な組み合わせをすべて試しましたが、構文エラーが発生します。誰かがそれを書く方法を知っていますか?