• 締切済み

<form> POST時の値に戻す。

フォームへ値入力後ポストをしたときに入力項目にエラーがあった場合や バックをした場合。 valueへポストした値(例:<input text="name" value="ポストした値">) をつけて吐き出しています。 非常に手間なのでできれば、上記処理をしなくてもフォームの input値がポストされた状態にしたいと思っています。 何か方法があるのでしょうか。

  • PHP
  • 回答数4
  • ありがとう数0

みんなの回答

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.4

Javaスクリプトのヒストリーバックを使えばできましたよ

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.3

Javascriptのwindow.history.go(n)じゃだめかな? nに負数を入れれば戻るになるので、2ページ前なら -2 で。

参考URL:
http://www.tohoho-web.com/js/history.htm#objHistory
realforce
質問者

補足

OKweb, 2ch共にJavaScriptを使用していないようです。 またヘッダーではキャッシュを無効化していないようです。 クッキーでも使用しているんでしょうか。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.2

あまり自信がある回答ではありませんが、同じPHPプログラム内で変数の受け渡しをした場合は、ブラウザの戻るで値が有効にならないのではないでしょうか? 例えば「form.php」と「main.php」の2個のプログラムがあり、「form.php」→POST→「main.php」の流れで処理した場合は、戻るをしても値が生きているとは考えられないでしょうか?

realforce
質問者

補足

そんなこともないようです。 たとえばこのokwebの答えるにポストする場合 <form action="/kotaeru_hosoku.php3?a=5424662" method="POST"> へpostしますが、同スクリプトで値が生きています。 (戻り後、投稿した文章があり、sourceを見ると <textarea name="fields[answer_remark]" cols="70" rows="12"></textarea>になっている。)

回答No.1

value に入れないと値が出ないのは、HTMLの仕様ですから。 今より楽したいとなると、お手軽なので PEAR の中の QuickForm を使ってみては。 かなり楽です。 http://www.planewave.org/translations/quickform/html_quickform.html

realforce
質問者

補足

テンプレート smarty or flexyをつかってvalueの処理を行っているのですが、 入れなくてもブラウザの「戻る」をしたときに値が生きている場合があるのです。 このサイトへの書き込み(POST)や2chの書き込み後、ブラウザの「戻る」をすると値が生きています。 ナゼでしょう また意図的に行うことは可能ですか?

関連するQ&A

  • FORMのIDを指定するとPOSTされない

    フォームの入力チェックをjavascriptで処理するため、FORMにIDをつけたのですが、ボタン押下でチェックが通れば自分自身にPOSTするような形をとっております。しかし、FORMにIDをつけてPOSTをしようとしても、何のアクションも起こりません。IDをはずせばきちんとPOSTされます。原因がわからないので、質問させていただきました。お分かりになる方、ご教授くださいますよう、お願いいたします。 <form id="corpform" method = "POST" action ="自分自身" > <input type="text" name="test" value="test" /> <input type="submit" name="add" value="追加" /> </form>

  • FORM ACTION~POST使用時について

    こんにちは。お世話になります。 cgiファイルから、FORM ACTION~POST⇒submitで自分自身を呼び出す時に、INPUT TYPE=\"text\"を11個間に入れると呼び出せません。 (10個の場合はうまくいきます) FORM ACTION~POSTは文字数制限がないと、本を見てもかいてあるのですが、なにか理由があるのでしょうか。 ご存知の方、ご教授願えたら幸いです。 よろしくお願いいたします。 抜粋したソースを下記に記します。 ------------------------------------------------------------- #障害対応情報項目テキストボックス print "<H5>【障害対応情報項目】</H5>\n"; print "<FORM ACTION=\"../cgi-bin/serch_e-001.cgi\" METHOD=\"POST\">\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-2\" VALUE=\"$$selectdata[0][7]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-3\" VALUE=\"$$selectdata[0][8]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-4\" VALUE=\"$$selectdata[0][9]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-5\" VALUE=\"$$selectdata[0][10]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-6\" VALUE=\"$$selectdata[0][11]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-7\" VALUE=\"$$selectdata[0][12]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-8\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-9\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-13\" VALUE=\"$$selectdata[0][18]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-14\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-15\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"新規検索\">\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"更新\">\n"; print "<INPUT TYPE=\"hidden\" NAME=\"no\" VALUE=\"$$selectdata[0][0]\">\n"; print "</FORM>\n"; ------------------------------------------------------------

    • ベストアンサー
    • Perl
  • フォームの一部をPOSTで送信できますか?

    フォームのPOST自体をあまり理解できていないかも知れないのですが・・・ onClickイベントでJavascriptでパラメータを送信したいと思っています。 <input type="text" name="text1"> <input type="text" name="text2"> <input type="text" name="text3"> <input type="text" name="text4"> <input type="text" name="text5"> <input type="button" value="ボタン1"> <input type="button" value="ボタン2"> <input type="button" value="ボタン3"> というようなフォームがあった場合、ボタン1を押したらtext1とtext2の値を、 ボタン2を押したらtext1とtext3の値を・・・という風に 送信する内容を変えたいのですが、それをPOSTで渡すことは可能なのでしょうか? ちなみに送信したい内容は、ボタンが違っても重なっているものもあります。 また可能であれば、どう記述すればよろしいでしょうか?(NNです) よろしくお願いします。

  • POSTされた値でイベント実行

    フォームからpostされたときに、特定の値が入っているときのみJavaScriptにてイベントを発生させたいのですが、どのようにすればいいのかわかりません。 <form action="#" method="post" name="test"> <input type="checkbox" name="a" value="1"> <input type="submit" name="submit" value="送信"> </form> このようなソースの場合でsubmit後、aに値が入っている場合のみイベントを発生させたいと考えています。そのようなことは出来ますしょうか? よろしくお願いします。

  • POSTメゾットでの値の受け渡しについて

    フォームからの値の受け渡しについて質問いたします。 <form ction="test.php" method="POST">   <input type="text" name="text">   <input type="submit" value="検索"> </form> で渡されたtextを下記スクリプトで受け取れません。 ====testphp==== <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <? print ".$_POST['text']."; ?> </body> </html> ========== ただ気になることがあり、このファイル達が置かれているディレクトリの.htaccessに <Limit GET POST> require valid-user </Limit> の記述があります。 このディレクトリはメンバー制限をかけているディレクトリですが、 メンバーとしてこのディレクトリのTOPページに入り、 検索フォームを入力してsubmitしても値はブロックされるものでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • ページを切り替えずにphpに値を渡したい。

    メインのページの入力フォームからoutput.phpにページを切り替えずに値を渡したいのですがどうしたらいいですか? <form action="output.php" method="post"> <input type=text name="text1"> <input type=submit value="変更"> </form> このようにやるとページがきりかわってしまいます。フォームと言う方法にこだわってるわけではありませんのでちがうほうほうでもいいので教えてください。

    • ベストアンサー
    • PHP
  • formから値を取ってくる

    検索機能つきのページを作ろうとしています。 htmlでformを使い閲覧者から指示された任意文字をxmlへ持ってくるにはどうしたらよいでしょうか? 今のところ ---html--- <FORM method="POST" action="kk.xml"> 名前:<input type="text" name="serch"> <INPUT type="submit" value="検索"></FORM> ---------- ---xml---- <xsl:variable name="serch"></xsl:variable> <xsl:value-of select="$serch" /> ---------- と行っているのですが値がxmlまで来ていないようです。

    • 締切済み
    • XML
  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • 値の引渡し

    変数の受け渡しがうまくいかない・・ 助言お願いします。 【入力フォーム1】 <form action="confirm.php" method="post" target="_brank"> <input type="submit" name="which" value="A"> <input type="submit" name="which" value="B"> </form> 上の入力フォームから送信されてきたデータを 表示しながら次の入力フォームでデータを確認画面へとばす その際に【入力フォーム1】で入力された which と 日付関数 $now = date(Y) . date(m) . date(d). ":" . $count をCSVデータにおとしていく 【入力フォーム2】 // 日付関数 $now = date(Y) . date(m) . date(d). ":" . $count; // csvデータへ落とす値↓ $buf = "$now,$which\r\n"; import_request_variables("gP","" ); session_cache_limiter('private'); session_start(); $_SESSION['pageData'] = $_POST['which']; <html> <head> </head> <body> <form method="post" action="check.php"> <input type="hidden" name="submitflg" value="$submitflg"> <input type="hidden" name="name1" value="$name1"> //======================================================================== // ココ↓で次ページへ$nowの値を引き渡すことができなくて困ってます。 <input type="hidden" name="now" value="$now"> //======================================================================== <input type="hidden" name="which" value="<?=$_POST['which']?>"> ありがとうございます! ■さっき入力された値は:<br> <? echo $_SESSION['pageData'];?><br> ■ペンネーム <input type="text" name="name1"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • 一括で値を入力するには?

    メインとするテキストフィールドに値を入れボタンを押すと指定の フィールドにメインで入力された値が一括で入力されるものを作りたく 調べてみたのですが一括でチェックボックスのON,OFFはみつかったの ですがどうやればできるのでしょうか? <form method="post" action="#"> <input type="text" name="fee[1]" value="" /> 円 <input type="text" name="fee[2]" value="" /> 円 <input type="text" name="fee[3]" value="" /> 円 ・・・ <input type="text" name="fee[48]" value="" /> 円 </form> 現在このようになっております。 用途は送料を一括で入力するものであり入力する値は基本的に半角 数字です。 例えばですがこれに <input type="text" name="feeall" value="" /> 円 <a href="#" onclick="feeset()">設定</a> とフィールドを追加し設定をクリックするとfeeallに入力した値が feeの配列に一括で入力できるようにしたいと思っておりますが方法が わかりません。 詳しい方おりましたら宜しくお願い致します。

専門家に質問してみよう