前提・実現したいこと
検索結果を保持したままページを戻るにはどうすればいいでしょうか。
Aページ (検索条件入力)
Bページ (検索結果ページ)
上記2つのページがあり、Aページでユーザー名を入れて検索ボタンを押せば該当のユーザーのみ表示されたページが表示され、
何も入力せず検索ボタンを押せば登録されているユーザー全員が表示される仕様です。
ユーザーを絞って検索ボタンを押し、Bページで表示されたユーザーに対していいねをつけた後に、
そのまま検索条件が設定されたままのBページに戻りたいですが、ユーザー全員が表示されたページになってしまいます。
いいねをつけた後に戻る際は下記のコードで戻るようになっています。
該当のソースコード
php
1<button class="close-btn-comp" id="js-close-btn" onclick="location.href=\'sales_reportSP.php\',oyareload()">一覧に戻る</button>
location.hrefの箇所で検索結果が残されていない状態だからだと思うのですが、
方法がわからず苦戦しております。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
・バージョン
PHP 7.1.23
mysql 5.6.43
php
1//検索ページのform 2<form method="post" action="sales_report_choiceCheck.php" class="" name="sales_report_check_form" onSubmit="return formCheck()"> 3 <table id="table" class="search"> 4 <tr> 5 <th style="width:110px;">営業担当者<br>で絞る</th> 6<!-- ①選択条件でドライバーを選択するためにドライバー一覧を取得 --> 7 <td> 8 <select name="driver_id" id="driver_id"> 9 <option value="<?php echo $rec['driver_id'] . '-' . $rec['first_name'] . $rec['last_name']; ?>"> 10 <?php echo $rec['first_name'] . $rec['last_name']; ?> 11 </option> 12 13 <?php 14 try { 15 16 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 17 $dbh->query('SET NAMES utf8'); 18 19 $sql = "SELECT * FROM m_driver_master WHERE retirement=0"; 20 $stmt = $dbh->prepare($sql); 21 22 $stmt->execute(); 23 $dbh = null; 24 25 while(true) { 26 $rec = $stmt->fetch(PDO::FETCH_ASSOC); 27 if($rec === false) { 28 break; 29 } 30 echo '<option name="driver_id" value="' . $rec['driver_id'] . '-' . $rec['first_name'] . $rec['last_name'] . '">' . $rec['first_name'] . $rec['last_name'] . '</option>'; 31 } 32 33 } catch (PDOException $e) { 34 exit('顧客データベース接続失敗。'.$e->getMessage()); 35 } 36 ?> 37 38 </select> 39 </td> 40 </tr> 41 42 <tr> 43 <th style="width:110px;">顧客名で<br>絞る</th> 44<!-- ②選択条件で顧客名を選択するために顧客一覧を取得 --> 45 <td> 46 <select name="salesClient_id" id="salesClient_id"> 47 <option value="<?php echo $rec2['salesClient_id'] . '-' . $rec2['shop_name']; ?>"> 48 <?php echo $rec2['shop_name']; ?> 49 </option> 50 51 <?php 52 try { 53 54 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 55 $dbh->query('SET NAMES utf8'); 56 57 $sql = "SELECT * FROM m_salesClient_master WHERE 1"; 58 $stmt = $dbh->prepare($sql); 59 60 $stmt->execute(); 61 $dbh = null; 62 63 while(true) { 64 $rec2 = $stmt->fetch(PDO::FETCH_ASSOC); 65 if($rec2 === false) { 66 break; 67 } 68 echo '<option name="salesClient_id" value="' . $rec2['salesClient_id'] . '-' . $rec2['shop_name'] . '">' . $rec2['shop_name'] . '</option>'; 69 } 70 71 } catch (PDOException $e) { 72 exit('顧客データベース接続失敗。'.$e->getMessage()); 73 } 74 ?> 75 </select> 76 </td> 77 </tr> 78 79 <tr> 80 <th style="width:110px;">日付で絞る</th> 81<!-- ③日付を選択するためのカレンダー --> 82 <td> 83 <div class="calendar-inner"> 84 <input class="calendar" type="date" name="sales_date" value=""> 85 <img class="calendar-icon" src="../../images/icon_calendar.png"> 86 </div> 87 </td> 88 </tr> 89 </table> 90 91 92<!-- 登録ボタン --> 93 <div class="button"> 94 <input type="submit" class="search_button" value="検索"> 95 <p id="notice_9" class="input">必須項目は全て入力して下さい</p> 96 </div> 97</form>
php
1//検索処理、データベースへの接続 2 3// 条件なし 4if(empty($driver_id) && empty($salesClient_id) && empty($sales_date)) { 5 $search_condition = 1; 6 7// driver_id軸条件 8} else if(!empty($driver_id) && empty($salesClient_id) && empty($sales_date)) { 9 $search_condition = 'a.driver_id=' . $driver_id; 10} 11if(!empty($driver_id) && empty($salesClient_id) && !empty($sales_date)) { 12 $search_condition = 'a.driver_id=' . $driver_id . ' AND sales_date=\'' . $sales_date . "'"; 13} 14if(!empty($driver_id) && !empty($salesClient_id) && empty($sales_date)) { 15 $search_condition = 'a.driver_id=' . $driver_id . ' AND a.salesClient_id=' . $salesClient_id; 16 17 18// salesClient_id軸条件 19} else if(empty($driver_id) && !empty($salesClient_id) && empty($sales_date)) { 20 $search_condition = 'a.salesClient_id=' . $salesClient_id; 21} 22if(empty($driver_id) && !empty($salesClient_id) && !empty($sales_date)) { 23 $search_condition = 'a.salesClient_id=' . $salesClient_id . ' AND sales_date=\'' . $sales_date . "'"; 24 25 26// sales_date軸条件 27} else if(empty($driver_id) && empty($salesClient_id) && !empty($sales_date)) { 28 $search_condition = 'sales_date=\'' . $sales_date . "'"; 29 30// すべてに条件設定 31 32} else if(!empty($driver_id) && !empty($salesClient_id) && !empty($sales_date)) { 33 $search_condition = 'a.driver_id=' . $driver_id . ' AND a.salesClient_id=' . $salesClient_id. ' AND sales_date=\'' . $sales_date . "'"; 34} 35 36 37try { 38 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 39 $dbh->query('SET NAMES utf8'); 40 41 $sql = "SELECT * FROM t_sales_db AS a 42 JOIN m_salesClient_master AS c ON a.salesClient_id=c.salesClient_id 43 JOIN m_sales_progress_master AS d ON a.progress_id=d.progress_id 44 JOIN m_sales_progress_purpose_master AS e ON a.progress_purpose_id=e.progress_purpose_id 45 JOIN m_driver_master AS b ON a.driver_id=b.driver_id 46 WHERE " . $search_condition . " ORDER BY sales_date DESC"; 47 48 49 $stmt = $dbh->prepare($sql); 50 $stmt->execute(); 51 52 while($result = $stmt->fetch(PDO::FETCH_ASSOC)) { 53 $salesdata[] = $result; 54 } 55 56 57 $sql = "SELECT * FROM t_competitor_status_db AS a 58 JOIN m_shouhinn_master AS b ON a.shouhinn_code = b.shouhinn_code 59 JOIN m_driver_master AS c ON a.driver_id=c.driver_id 60 JOIN m_salesClient_master AS d ON a.salesClient_id=d.salesClient_id 61 ORDER BY reflash_date DESC LIMIT 5"; 62 63 $stmt = $dbh->prepare($sql); 64 $stmt->execute(); 65 66 while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 67 $competitorData[] = $row; 68 } 69 70 $sql = "SELECT driver_id FROM m_driver_master 71 WHERE " .$_SESSION['login'] = 1; 72 73 $stmt = $dbh->prepare($sql); 74 $stmt->execute(); 75 76 while($thirdResult = $stmt->fetch(PDO::FETCH_ASSOC)) { 77 $driversId = $thirdResult; 78 } 79 80 81 $dbh = null; 82 83 84} catch (PDOException $e) { 85 exit('顧客データベース接続失敗。'.$e->getMessage()); 86}