掲示板を作成しており、記事一覧ページに付けた検索機能は入力フォームが0もしくは空文字の場合に
検索ボタンを押しても処理しませんが、カテゴリページにパラメータを渡して該当するカテゴリの記事を表示させているページにも検索機能を付けたところ、入力フォームが0もしくは空文字でも検索ボタンを押すと処理が続行されてしまいます。
検索ワードがある場合は検索処理、 検索ワードが無い(0 or 空文字)場合は検索ボタンを押しても
該当するカテゴリの記事をそのまま表示 というようにしたいのですが実現方法が思いつきません。
ご教授いただきたいです、よろしくお願いします。
初回質問時コード
//index.phpから受け取ったパラメータの値をチェック $id = ''; if(!empty($_GET['category']) && preg_match('/\Aid[1|2]\z/u', $_GET['category'])) { //id番号が1or2の場合のみ変数に代入 $id = (string)$_GET['category']; } else { die('該当するカテゴリはありません'); } //検索ワード下処理 $_POST = varidation($_POST); $keyword = !empty($_GET["keyword"]) ? trim($_GET["keyword"]) : ""; if(!empty($_POST["keyword"])) $keyword = trim($_POST["keyword"]); $word = explode(" ", mb_convert_kana($keyword, "s")); $word = array_filter($word, function ($str){ return $str != ""; }); sort($word); //表示クエリ if(!empty($keyword)) { //$keywordに検索ワードが入っているため検索処理を行うクエリ } else { //$keywordが空の場合(検索フォームが空)は指定したカテゴリの記事を検索して表示させるクエリ if($id === 'id1') { //’id_1’に該当する記事を抽出するクエリ } if($id === 'id2') { //’id_2’に該当する記事を抽出するクエリ } }
その後の修正コード
//検索ワード下処理 $_POST = varidation($_POST); $keyword = !empty($_GET["keyword"]) ? trim($_GET["keyword"]) : ""; if(!empty($_POST["keyword"])) $keyword = trim($_POST["keyword"]); $word = explode(" ", mb_convert_kana($keyword, "s")); $word = array_filter($word, function ($str){ return $str != ""; }); sort($word); //index.phpから受け取ったパラメータの値をチェック $id = ''; if(empty($keyword)){ //検索ワードが空の場合 を追加 if(!empty($_GET['category']) && preg_match('/\Aid[1|2]\z/u', $_GET['category'])) { //id番号が1or2の場合のみ変数に代入 $id = (string)$_GET['category']; } else { die('該当するカテゴリはありません'); } } //表示クエリ if(!empty($keyword)) { //$keywordに検索ワードが入っているため検索処理を行うクエリ } else { //$keywordが空の場合(検索フォームが空)は指定したカテゴリの記事を検索して表示させるクエリ if($id === 'id1') { //’id_1’に該当する記事を抽出するクエリ } if($id === 'id2') { //’id_2’に該当する記事を抽出するクエリ } }
回答3件
あなたの回答
tips
プレビュー