• ベストアンサー

こんな場合・・・

Perlでプログラミングしているんですが、HTMLの知識かも知れません。簡単そうなことなんですが、つまづいてしまいました。 下記のソース 矢印の部分を読んでください。 ソースの説明 以下は書き込みした後の確認画面のソースです。確認画面では自分が入力したことを確認できます。よく登録フォームとかでありますよね。 OKボタンを押すと書き込まれます。戻るボタンを押すと、書き込み画面に戻り再編集できるようにしたいと考えています。 <form method="post" action="$this_file"> <input type="hidden" name="op" value="w"> <input type=submit value="  OK  ">   #→OKを押したら1文上のパラメータを別ルーチンに送りたい。value="w"です。 <input type="hidden" name="op" value=""> <input type=submit value="  戻る  ">   #→戻るを押したら1文上のパラメータを別ルーチンに送りたい。つまり「value=""」です。 <input type="hidden" name="gname" value="$gname"> <input type="hidden" name="email" value="$email"> : : </form> 矢印文のことをしたいんですが、どうもどちらのボタンを押してもvalue=""が送られてしまうんです。これをちゃんと矢印文どおりにプログラミングさせたいんですがどう記述すればいいのでしょうか?HTMLの辞典を引いたんですけど、わからなかったです。

  • CGI
  • 回答数4
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • HUTABA
  • ベストアンサー率27% (436/1611)
回答No.1

1つのフォームの中にOKと戻るのボタンがあるので <input type="hidden" name="op" value="w"> が <input type="hidden" name="op" value=""> で上書きされてしまっているのでしょう。 このどちらのボタンを押しても、"w"と""の情報が送信されます。 <form method="post" action="$this_file"> <input type="hidden" name="op" value="w"> <input type=submit value="  OK  "> : : </FORM> <form method="post" action="$this_file"> <input type="hidden" name="op" value=""> <input type=submit value="  戻る  "> : : </FORM> としてフォームを分けるか、JavaScriptを組み込んで押されたボタンによって送信するデータを変えると良いと思いますよ。

Scotty_99
質問者

お礼

お礼おそくなりました。回答ありがとうございました。 同じような感じで早速やってみます。

その他の回答 (3)

回答No.4

#3ではちょっと不親切なので少し補足します。 要は前の入力画面に戻れればいいんですよね。 <form method="post" action="$this_file"> <input type="submit" value="  OK  "> <input type="button" name="back" value="  戻る  " onClick="history.go(-1);"> <input type="hidden" name="gname" value="$gname"> <input type="hidden" name="email" value="$email"> : : </form> こうすれば、hidden属性でパラメータを送る必要もないですし、スクリプト全体が簡潔になると思います。 パラメータを利用しなければ name="back" は不要でしょう。 "history.back" という JavaScriptもありますけど、 "history.go" 一つ覚えておけば、戻るも進む自由なので これが、いいのではないかな。()の数値が進む(マイナスの場合は戻る)段階数です。

Scotty_99
質問者

お礼

お礼おそくなりました。2度の回答ありがとうございました。 早速やってみました。ただ、入力履歴が消えてしまわないようにしたかったです。書き忘れました。でも、参考になりました。

回答No.3

<input type="button" name="back" value="戻る" onClick="history.go(-1);"> こういう方法もあります。一番かんたんかも。

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

No.1 で HUTABA さんが書かれている通り、1つの FORM 内に同じ name のフォーム部品を置くことはできません。 簡単なのは、op を hiddenフォームではなくOKボタンの name にすることです。 こうすれば、   OKボタンを押す → op が送信される   戻るボタンを押す → op は送信されない となるので、送信先CGIでは op というパラメータが送信されているかどうかをチェックすれば済みます。

Scotty_99
質問者

お礼

お礼おそくなりました。早速の回答ありがとうございました。 nameで送るのが楽そうですね。

関連するQ&A

  • 同一ページで複数のformを扱う場合

    同一のページ内にhiddenでIDを振った削除ボタンを用意しクリックされたIDを取得するにはどのようにすれば良いでしょうか? <form action="/test.php" name="1" method="post"> <input type="hidden" name="id" value="1" /> <input type="submit" name="delete" value="削除"> </form> -- 省略 <form action="/test.php" name="10" method="post"> <input type="hidden" name="id" value="10" /> <input type="submit" name="delete" value="削除"> </form> formにnameを振ってみても最後のIDがPOSTされてしまいます。

    • 締切済み
    • PHP
  • フォームタグについて

    二つのフォームタグを一つのボタンで送信したいのですが、可能でしょうか? <form action="http://aaa/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="1" /> <input type="submit" value="登録" /></form> <form action="http://bbb/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="2" /> <input type="submit" value="登録" /></form> 同じデータをもっているフォームですが、送信するページが別々になっています。 この二つのフォームを一つの送信ボタンで送信できますでしょうか? 色々と調べましたがわかりません。 よろしくお願いいたします。

  • 複数FORMの一括実行について

    通常であれば同一サイト内に下記のソース(フォーム)が入るのですが、 これを改良しサイト上で希望の送信先をチェックボックスで選択し一回の操作で複数のcgiを実行したく思います。 良いcgiがあれば教えてください。 又は改造ができるcgi、修正方法を分かりましたらお教え願います。 サイトA <form action="https://aaa.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトB <form action="https://bbb.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトC <form action="https://ccc.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form>

    • 締切済み
    • CGI
  • サイト内検索のタグ(CGI禁止の場合)でうまくいかない・・・(涙)

    cgiを使わないサイト検索機能をホームページにつけるため、 googleを使ったサイト内検索を行うタグをソースに入れたところ、うまく動作しません。 (仮に検索対象となる自分のホームページのドメインをwww.abc.ne.jpとします) <form action="http://www.google.co.jp/search" method="get"> <input type="hidden" name="as_dt" value="i"> <input type="hidden" name="as_epq" value="abc"> <input type="hidden" name="as_eq" value> <input type="hidden" name="as_occt" value="any"> <input type="hidden" name="as_oq" value> <input type="hidden" name="as_sitesearch" value="abc.ne.jp"> <input type="hidden" name="lr" value> <input type="hidden" name="num" value="10"> <input type="text" size="20" name="as_q"> <input type="submit" name="btnG" value="検索"> </form> http://www.abc.ne.jp/abcのサイト内を検索したいのですが、 この場合だとhttp://www.abc.ne.jp/のサイトも検索にかかってしまいました。 http://www.abc.ne.jp/abc内だけをサイト内検索するフォームタグはあるのでしょうか? 教えてください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • vb2005のWebbrowserコントロールで複数のSubmitボタンがある場合

    Webbrowserコントロールに読み込んだwebページ上に 複数のSUBMITボタンがある場合、name属性で押すボタンを選択し 実行する方法を教えてください。 -------------------------------------------------------------- 【htmlのソース】 <INPUT type=submit value=アップロード name=select> <INPUT type=submit value=次へ > -------------------------------------------------------------- 同一フォーム上に二つのボタンがある。 【vb2005のソース】 -------------------------------------------------------------- WebBrowser1.Document.Forms(0).InvokeMember("submit") -------------------------------------------------------------- を実行すると、 「<INPUT type=submit value=次へ >」のボタンの方は実行できるのですが、 「<INPUT type=submit value=画像のアップロード name=select>」の方は実行されません。 よく分からないなりに、 -------------------------------------------------------------- WebBrowser1.Document.All.GetElementsByName("select")(0).InvokeMember("submit") -------------------------------------------------------------- 等と書いてみましたが、反応ナシです。 ご教授、お願いいたします。

  • 買い物カゴについて

    すいません。レンタルショッピングカートについて 質問です。 現在、商品を登録する以下のようなソースがもらえる タイプのショッピングカートを使っています。 このソースはすでにボタンも付いているのですが 出来ればこのボタンの部分を変えて、普通に HTMLで書いた文字をボタンの代わりにしたいと 考えています。そのようなことは可能でしょうか? <FORM action='http://www.e-sh****.jp/******_order_new.php' method='post' target='_blank' style='margin:0;font-size:10pt'> <BR> <INPUT type='submit' value='カゴに入れる'> <INPUT type='hidden' name='button' value='追加'> <INPUT type='hidden' name='sy' value='*******************'> <INPUT type='hidden' name='sh' value='***'> </FORM> <BR>

    • ベストアンサー
    • HTML
  • form action ボタンの作り方

    form actionでボタンを作っているのですが、 a href リンクではないためか、カーソルを合わせても矢印の表記が変わりません。 具体的には以下のようなコードになっています。 <FORM ACTION="#" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="aid" VALUE=" "> <INPUT TYPE="HIDDEN" NAME="pt" VALUE=" "> <INPUT TYPE="HIDDEN" NAME="iid" VALUE=" "> <center><INPUT style="width: 200px; padding: 15px 15px; font-size: 1.2em; background-color: #2e2e2e; color: #fff; border-style: none; border-radius: 5px; border-bottom: 3px solid #000;" TYPE="submit" NAME="submit" VALUE=" "></center> </FORM> カーソルを合わせたときに矢印表記が変わるようにするためには、どのようにコードを直せばいいでしょうか。

  • ショッピングカートのボタンを任意の画像に

    すいません。現在ネットショップのサイトを作っているのですが、 そのサイトでは以下のボタンを生成する事ができます。 ただできれば、任意の画像(ボタン)に変更したいのですがどのようにいじればよいでしょうか? ボタンの画像はもう出来ているのですが、アドバイスいただければ助かります。 <form method="post" action="http://cart.**********"> <input type="text" name="es_item_qty" value="1" style="width:30px;"> <input type="hidden" name="es_charset" value="utf-8"> <input type="hidden" name="es_item_id" value="123"> <input type="hidden" name="es_shop_id" value="987"> <input type="hidden" name="es_stock_attr_flag" value="2"> <input type="submit" name="es_submit" value="カゴに入れる" > </form>

  • フォームについて

    <form action="test.php" method="GET"> <input type="hidden" name="page" value="1"> <input type="submit" value="index"></form> <form action="test.php" method="GET"> <input type="hidden" name="page" value="1"> <input type="submit" value="index"></form> --------------------------------------------- このようにして書くと、どうしてもボタンが縦に並んでしまいます。どのようにすれば横一列に並べる事が出来るでしょうか?

    • ベストアンサー
    • HTML

専門家に質問してみよう