PHP + SQLite でメールフォームを作成しています。
以下の手順で、リクエスト ⇒ DB 書き込み ⇒ DB 更新までは完了しています。
---- 作成した PHP -----
リクエスト登録フォーム A.php
リクエストを検索するフォーム B.php
検索結果を表示するフォーム C.php
---- 手順 -----
1. A.php でレコードを登録する。
2. B.php で、キーワードを指定して DB からレコードを検索する。
<form name="B" action="C.php" method="post">
予約番号: <input type="text" name="search_term" size="40"><br>
<input type="submit" value="検索">
</form>
3. 検索キーワードに該当するレコードが DB から呼び出され、C.php に表示される。
$search_term = $_POST['search_term'];
print("予約番号 = $search_term<br>\n");
// 入力された予約番号で検索
$result = sqlite_query($db, "SELECT * FROM proofreq WHERE RequestNo LIKE '%$search_term%' ORDER BY RequestNo DESC");
while ($rec = sqlite_fetch_array($result, SQLITE_ASSOC)) {
$formcnt += 1;
.... 以下中略
4. B.php で、レコードを変更する。
5. 変更内容が DB に書き込まれる。
問題はこのあと ------------------
STEP 2.の検索結果だけを表示する C.php に戻りたいのですが、
header('Location: C.php');
では、DB の全レコードを表示する C.php に戻ってしまします。
質問 -----------------------------
STEP 2.の検索結果だけを表示する C.php に戻るには、どうすればいいでしょうか。
自分なりに考えたこと -----------------------
STEP 2.の検索結果だけを表示する C.php を、一意に特定できる状態にして、
header('location: C.php?search_term='.$RequestNo );
でリダイレクトとする。
...しかし、「一意に特定できる状態にする」 方法がわかりません。。
行き詰まりました。
どなたか、よろしくご教示ください。
No.2ベストアンサー
- 回答日時:
補足では、location headerの記述が変わっているけどupdate.phpで作り直していると云うことでしょうか?
>header("Location: update.php?var=$RequestNo"); で送っても、if($_GET['var']); で受け取れません。
$RequestNoにデータは入っているのか?とか、送信後のアドレス欄は、以下のようになっていなければなりませんが、ちゃんとquery表示されているのか?とかもチェックしていかないと問題が特定出来ません。
http://*****/update.php?var=3
今更ですけどheaderの発行は、ちゃんと実行されているのですよね?
header発行前に何らかの出力が行われていて、ジャンプしてないとかでは無いですよね?
回避策の、D.phpも2.のformと要素名が違ってるので、ちゃんと検索出来てないのでは??
どうも、一連の作業での変数名や、form要素名が一定していないので、よけい混乱しているように見受けます。
0から、データ受け渡しのストーリーをきちんと設計し直した方が早そうな気がする。
はい。header の発行は実行されています。
送信後のアドレス欄もhttp://*****/update.php?var=3のように表示されます。
> 回避策の、D.phpも2.のformと要素名が違ってるので、ちゃんと検索出来てないのでは??
書き間違えました。
実際には、form 名 は 'B' にしていますので、検索はできています。
やはり、設計上、色々と問題があるのですね。
ご指摘、ありがとうございます。もっと勉強します。
現状は、上の回避策で動いているので、これで対応しようと思います。
返信いただき、ありがとうございました。心強かったです。
No.1
- 回答日時:
>「一意に特定できる状態にする」 方法
見た限りでは、必要データ送信は出来ているように思うのだけど?
あと、リダイレクト時はget送信なので、C.phpはgetでのデータも受け取るようにしないとなりません。此処が出来てないと云うことかな?
php4.1.0以降なら、$_POSTを$_REQUESTにすれば、getもpostも同様に受け取れます。
この回答への補足
hrm_mmm様
お返事いただき、ありがとうございます。
> 此処が出来てないと云うことかな?
はい。。。
header("Location: update.php?var=$RequestNo"); で送っても、if($_GET['var']); で受け取れません。
「?var=$RequestNo」部分を記述しなければ、この (↓) 状態に戻ってしまいます。
1| ○月○日 | 山本太郎 | 東京都
2| ○月○日 | 川口太郎 | 千葉県
3| ○月○日 | 山田太郎 | 神奈川県 << 変更は反映されている
....
$RequestNo が 「3」 だとすると、この (↓) 状態に戻ってほしいのですが、
3| ○月○日 | 山田太郎 | 神奈川県 << 変更は反映されている
回避策として、今は確認ページ (D.php)に飛ばして、そこで、もう一度検索させています。
header("Location: D.php");
D.php -------------
<form name="search" action="C.php" method="post">
<p>更新が完了しました。内容を確認してください。</p>
<p><b>校正予約番号</b>:
<input type="text" name="RequestNo" value="<?php print(stripslashes($_GET['var'])); ?>">
<input type="hidden" name="rowid" value="<?php print("{$var}"); ?>">
<input type="submit" name="check" value="確認"></p>
</form>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
受け取ったパラメータを次のphp...
-
FORMで送信ボタンと戻るボタン...
-
form actionで二つ送信先を指定...
-
PEAR Image_QRCodeのエラー
-
テキストボックスにデータベー...
-
CFileDialogの最初のディレクト...
-
VB6にてメールを送信する方法
-
onedrive にexcelファイルをア...
-
phpのheader("Location:#pos")...
-
バイナリファイルをブラウザに...
-
OpenGLで描いて画像ファイル出力
-
フォントの色を変えるには?
-
VB.NET 最下位のディレクトリ名...
-
リンク先を隠す方法はないでし...
-
PHPのif文でその処理を途中で抜...
-
FORMタグを使わずに、POSTする...
-
youtubeに音声のみのmp4ファイ...
-
mysql複数レコードをまとめて削...
-
phpの階層が変わると上手く読み...
-
Subversionのリポジトリの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
form actionで二つ送信先を指定...
-
データ送信をボタンを押さずに...
-
PHPでε(イプシロン)のような...
-
FORMで送信ボタンと戻るボタン...
-
inputタグでphpを呼び出す際、...
-
別のファイルへ値を受け渡す方法
-
テキストボックスにデータベー...
-
ボタンのクリック数を合計保存...
-
リクエストメソッド
-
PHPとCSVで簡易データベースな...
-
Auth認証エラー
-
【PHP】ページを更新すると勝手...
-
ワンクリックしかできないクリ...
-
PEARでのAuth認証について
-
multipart/form-dataを使ったデ...
-
戻れないです
-
PEAR Image_QRCodeのエラー
-
header(Location: next.php) だ...
-
受け取ったパラメータを次のphp...
-
【初歩】ログアウトを【2回押さ...
おすすめ情報