人が作ってくれたcgiを見て、直すことができるか検討
しています。
a05.cgi という入力フォームで社員コードを入力して
「編集画面へ」をクリックすると a06.cgi に進み、
そこで詳細データを入力します。
a06.cgiにある
print "<a href=\"./a05.cgi\">戻る</a><br>\n";
この部分で、「戻る」をクリックしてa05.cgiに戻った
とき、先に入れた社員コードが消えてしまっているの
ですが、これを消さないように戻ることはできるので
しょうか。
cgiはリストを追加したりするくらいしかわかりません。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
> a05.cgiの該当部分が
> print "<FORM action=\"a06.cgi\" method=\"POST\">>【社員コード入力】<br>\n";
> print "<input type=\"text\" name=\"crc\">";
> print "</select><br>";
> print "日付選択";
> print "<select name = \"year_b\">\n";
> foreach…………
> となっていましたので、
> <a href=\"./a05.cgi\">戻る</a> のところを
> <a href=\"./a05.cgi?name=\"crc\"\">戻る</a>
> としてみましたがうまくいきません。
a06.cgiで社員コードを[crc]という名前で受け取っている部分があると思います。
受け取った変数が$crcだと仮定すると、戻るのリンクの部分は
<a href=\"./a05.cgi?crc=\"".$crc."\">戻る</a>
になると思います。
そして、a06.cgiの中のa05.cgiから送信されたフォーム情報を受け取っている同じ物
をa05.cgiに入れてあげ、
print "<input type=\"text\" name=\"crc\" value=\"".$crc."\">";
とフォーム部分を変更すれば値が入ると思います。
@@@.cgi?xxx=yyy&iii=jjj
というURLを検索エンジン等でお目にかかると思います。
xxxとiiiが値をやり取りする名前になり
yyyとjjjが実際の値になります。
上ではcrcという名前で、$crcの値を引き渡す動作になります。
試してやってみたものはnameという名前でcrcという値を受け渡している状態になっています。
質問締め切りメールがきてしまいましたので、一旦閉じさせていただきます。
年明けから別の急ぎの仕事に追われ、まだ検討できていませんが、時間ができたらアドバイスいただいたことを再検討したいと思います。
どうもありがとうございました。
No.5
- 回答日時:
#2の方へのコメント内のコードを見る限り、根本的に表示が出来ないように思います。
つまり、print "<input type=\"text\" name=\"crc\">";
という形では、たとえクエリーを取得出来ていたとしても表示は出来ないわけです。正確なソースコードが無いのでなんとも言えませんが、例えば
print "<input type=\"text\" name=\"crc\" value=\"$in{'crc'}\>"; # $in{'crc'}にクエリーから取得した社員コードが入っているとする
等、何らかの形で取得したデータを表示に反映させなければなりません。
あと、a05.cgiがクエリーを読むのか否かでも結構違いが出ます。method="post"ということなので、場合によってはpostしか読まないのではないでしょうか。チェックしてみてください。
代案としては、社員番号をクッキーに保管する方法が考えられます。a06.cgiでクッキーを発行し、a05.cgiではクッキーを読めるようにすることになります。正直、クエリーで対処出来るならその方が楽に事を終えられますが、クッキーの方が応用が利くのも確かではあります。
もしも、複数ページに渡ってこうした(前の入力が生きている)処理を行ないたいと言うことであれば、処理の内容にもよりますがセッション処理が必要になるのではないかと思います。セッション処理を全く考えていないプログラムであれば、大規模な変更が必要になりそうです。
(a01.cgiやa02.cgiが存在するかも?と思ったので。)
コメントありがとうございます。
難しくて読んだだけでは理解できないのと、別の仕事に追われてしまっているのとで、なかなか検討できないでおります。
時間が取れたらもう一度やってみようと思います。
どうもありがとうございました。
No.3
- 回答日時:
#2の方と同意見です。
あとは、a05.cgiとa06.cgiのソースがないとアドバイスのしようがないかと…。
たぶん、a06.cgiで社員コード受け取ってますから、それと似たような部分をa05.cgiに入れてやれば何とかなるとは思うのですが…。
No.2
- 回答日時:
URLに引数表示されてしまいますが
print "<a href=\"./a05.cgi?code=c06.cgiで取得した社員コード\">戻る</a>";
にして、a05.cgiでcodeを受け取るようにし、
社員コードをフォームに表示したらいかがでしょうか。
まとを外していたら申し訳ないです。
a05.cgiの該当部分が
print "<FORM action=\"a06.cgi\" method=\"POST\">【社員コード入力】<br>\n";
print "<input type=\"text\" name=\"crc\">";
print "</select><br>";
print "日付選択";
print "<select name = \"year_b\">\n";
foreach…………
となっていましたので、
<a href=\"./a05.cgi\">戻る</a> のところを
<a href=\"./a05.cgi?name=\"crc\"\">戻る</a>
としてみましたがうまくいきません。
No.1
- 回答日時:
フォームやCGIに問題があるわけではなさそうです。
フォームを記述しているhtmlファイルのヘッダ部分を確認してみてください。
常に最新のデータを取得しなおすように設定されていたりしませんか?
こういった設定をされている場合、戻るボタンで戻った場合でも、既に入力したデータを廃棄して再度サーバにアクセスしてhtmlを取得します。
BBSなど、頻繁に更新されるページで戻るボタンでも最新の情報を表示するようにと、よく利用されている機能ですが、今回の場合は不要ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- その他(プログラミング・Web制作) プログラムについて。 2 2022/04/07 18:48
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- その他(プログラミング・Web制作) プログラムについて。 4 2022/03/30 09:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ホームページでCGIのフォームを...
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
CGIって何ですか?簡潔に教えて...
-
CGI.pmはもう古い!?
-
URLがhttp://~.cgiとなってい...
-
cgi-perl の sendmail について
-
ホームページにメールフォーム...
-
VBAで条件から範囲を指定して色...
-
フォームを再送信しますか?
-
入力フォーム(電話番号)
-
プロバイダのスピードは、maps...
-
POSTメソッドの最大容量について
-
3DCG
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<form method="post" action="...
-
フォームで送信ボタンを押すと...
-
PerlのCGIでフォームのテキスト...
-
cgiで拡張子.cgiと拡張子.pl...
-
htaccessで静的URLを動的URLに...
-
cgiを複数設置したい
-
VBでcgiを動作させるには
-
【超初歩】CGIと同じ場所にある...
-
アップロードされてきた画像フ...
-
<object>タグとダウンロードカ...
-
CGIから別のCGIへPostするには?
-
activeperl5.6が起動できない
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
週2回のペースって だいたい何...
-
apacheでPerl CGIが作動せず、5...
-
毎○曜日って、使いますか?
-
[Excel] ある日の曜日が当月の"...
-
エクセルで相対パスの書き方を...
おすすめ情報