Zend_Paginate()
GET検索文字列に基づいて読み込まれるクエリを使用してページを呼び出そうとしていますが、クエリは基本的に次のことを行います。
SELECT * FROM table WHERE column LIKE '%searchstring%' OR alt_column LIKE '%searchstring%';
検索/送信テキストフォームを介して呼び出された場合、クエリは正常に機能し、URLは次のようなものを返します
URLINK.php?search=searchstring
ただし、次のページに移動しようとすると、プログラムはページの代替URLに戻ります(エラーまたはページ表示なしに使用されます)-この最後の行が遅れていることを理解し、透明性を持ってこれを入力するために最善を尽くしていることを願っています。
"に対してpaginateを使用する場合の最良の方法は何URL.php?search=searchstring
ですか?
URLの呼び出しについてもう少し
//search query
$search = searchQuery('search', 'list_sql_rows.php');
$results - searchTable($dbRead, $search);
上記の変数を以下の順序で使用する検索方法
if(isset($_POST['submit_search'])) { $searchstring = $_POST['searchstring'];
if($searchstring) { header('Location: results.php?search=' . $searchstring); } }
このビットはうまく機能しますが、results.php?page=2
with paginatorを呼び出そうとすると、システムはlist_sql_rows.php
上記のようにフォールバックURLに戻ります。任意の考え/コメントをいただければ幸いです。
search.phpページから検索フィールド/フォームを明確にするために、フェイルセーフとして&&$searchstring
経由でresults.phpページにを送信します。getメソッドはURLヘッダーでを送信するため、検索結果は最初のページで機能します。results.php?search =$searchstring。これは問題なく機能します。ページ付けが失われたようです。これは、ページ付けが「ページ付け」を開始したときに/が失われたことが原因であるのではないかと思います。URLresults.php ?page = 2が返されるため、選択した方法ではないようです。$_POST
$_GET
$searchstring
$searchstring
$_POST
$_GET
$_GET
更新 書き込みトラックでpaginateが機能するようになりましたが、壊れているのはリンク構造です。 _results_samples.php?search = robert&page = 4_は、実際には、ROBERTという単語を使用してページ化された結果のページ4を返します。
$searchstring
以下に示すように
、最初にページネーションリンクへの変更を永続化することにより、推奨される方法のROCKYFORDバリアントによるソリューションが見つかりました。
<a href='" . $_SERVER['PHP_SELF'] . "?search=" . $searchstring . "&page={$page}'>$page</a>