質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

2414閲覧

検索結果を残したままページに戻りたい

kpg

総合スコア23

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/10/02 05:09

編集2019/10/02 05:23

前提・実現したいこと

検索結果を保持したままページを戻るにはどうすればいいでしょうか。

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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/10/02 05:12

検索フォームのhtml、検索処理のphpのコードもご提示ください 少なくとも項目や処理の仕方、form methodがどうなっているか分からないと現状へのアドバイスとなりません
kpg

2019/10/02 05:24

m.ts10806様 すいません。 コードを追記しました。 よろしくお願いします。
guest

回答2

0

状況がわかりませんが
検索時につけたパラメータを戻るときに引き継げばよいのでは?
buttonの記述を見る限り「戻る」とは言い難い仕様のようなので

投稿2019/10/02 05:29

yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://techacademy.jp/magazine/4970
セッションを使ってみてを使ってみてどうでしょう

投稿2019/10/02 07:40

siratama_neko

総合スコア72

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問