同じnameのhiddenで別々の内容のvalueを送りたい

このQ&Aのポイント
  • 同じnameのhiddenタグを使用して複数の値を送信したい場合、formの送信時に一番最初のhiddenの値しか送信されない問題が発生します。この問題を解決する方法としては、hiddenタグのname属性を配列にすることで、複数の値を送信することができます。
  • 具体的には、name属性を[name1]、[name2]、[name3]といったように配列形式にすることで、各hiddenタグの値を個別に送信することができます。そして、formを送信する際には、Javascriptを使用して適切なhiddenの値を選択して送信するようにします。
  • この方法を使用することで、同じnameのhiddenタグでもそれぞれの値を個別に送信することができます。また、hiddenタグの値を使用して動的にファイルを生成したり、その他の処理を行うことも可能です。
回答を見る
  • ベストアンサー

同じnameのhiddenで別々の内容のvalueを送りたい

同じnameのhiddenで別々の内容のvalueを送りたい <form action="" name="MyForm" method="post"> <input type="hidden" name="rm" value="×××.txt">テスト1 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> <input type="hidden" name="rm" value="○○○.txt">テスト2 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> <input type="hidden" name="rm" value="△△△.txt">テスト3 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> 別のcgiでform送信すると、txtファイルが生成され、上記の繰り返しの部分に追加されていく様なイメージです。 閲覧・削除ボタンを押すと直前のhiddenを送信したいのですが、現状では一番最初のhiddenが送信されてしまいます。 方法がわかる方いらっしゃいましたら、御回答お願い致します。

  • HTML
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
回答No.1

<form action="" name="MyForm" method="post"> <input type="hidden" name="rm" value="×××.txt">テスト1 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> </form> <form action="" name="MyForm" method="post"> <input type="hidden" name="rm" value="○○○.txt">テスト2 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> </form> <form action="" name="MyForm" method="post"> <input type="hidden" name="rm" value="△△△.txt">テスト3 <input type="button" value="閲 覧" onClick="MyForm.action='rm.cgi';MyForm.submit();"> <input type="button" value="削 除" onClick="MyForm.action='delete.cgi';MyForm.submit();"> </form> ……というように、送信単位で別個のフォームに区切ってしまえば良いかと。

palmist_1987
質問者

お礼

御回答有難う御座います。 この方法も考えまして一度試してみております。 結果としましては、繰り返し部分が1つのときはうまく動作したのですが、 2つ以上になるとこちらでの記述がおかしい可能性もありますが、 エラーが発生してしまい動作しませんでした。

palmist_1987
質問者

補足

何度かプログラム変更しながら確認したところ、単純にページ内に同一のform nameが 存在する場合エラーが発生していましたので、そこを手直し致しましたところ、 無事正常に動作致しました。 有難う御座いました。

関連するQ&A

  • 複数ボタンのvalueを送れない

    ひとつのフォームで複数のボタンを使う方法を探していたら 次のような方法があるとのことでした。 <form method="post" name="MyForm"> <INPUT TYPE="BUTTON" VALUE="aaa" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> <INPUT TYPE="BUTTON" VALUE="bbb" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> </form> これで、ボタンによってVALUEを渡せるのかと思いきや、 飛んでいきませんでした・・・ 複数ボタンを用意して、ボタンによってその VALUE値を渡す方法がありませんでしょうか?

    • ベストアンサー
    • CGI
  • cgiで.datファイル内の一文を削除したい。

    cgiで.datファイル内の一文を削除したい。 HP上で文書等を保存すると.datファイルに以下の様な文章が追加され、cgiでそれを開いてhtml表示させるとリンクとして使用できる様にしています。日時等の数字は保存時のものとなります。 <form action="" name="MyForm20100805" method="post"><input type="hidden" name="rm" value="2010.08/2010.08.05-a.txt"><input type="hidden" name="del" value="2010/08/05">2010/08/05&nbsp;&nbsp;<input type="button" value="閲 覧" onClick="MyForm20100805.action='hyoji-a.cgi';MyForm20100805.submit();"><input type="button" value="削 除" onClick="MyForm20100805.action='del.cgi';MyForm20100805.submit();">[更新日時:平成2010 年08月日16時54分14秒]</form> 今、間違えて保存してしまったり、不要になった場合に、削除ボタンを押すと.dat内から上記の部分のみを削除するcgiを組みたいのですが、s/やtr/で色々と挑戦したのですが一致する部分がないと判断されてしまったり、ボタンだけが残ってしまったり、最終的には.datファイルにリンク生成時にこの1文を検索文字列としてhidden要素で追加しようとした時に、文字列の中に文字列があって更にその中に文字列が~・・・みたいになってしまっている次第です。 とっても簡単で単純なことを聞いてしまっているのかもしれませんが、よろしければどのように上記の文字列を削除すればよいのか、御教授いただけませんか?

    • ベストアンサー
    • CGI
  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • select値をhiddenのvalueに渡したい

    selectで選択されたvalue値を下のhiddenのvalue値(id)に渡して、 hiddenのvalue値(id)がselectで選択されたvalue値になるような フォームを作りたいのですが、作り方をお教え頂ければ幸いです。 <form name="form" method="get" action="index.cgi"> <select name="mode"> <option value="100023">和書</option> <option value="100241">洋書</option> <option value="100524">エレクトロニクス</option> </select> <input type="hidden" name="serch_janru" value="id" /> <input type="text" name="keyword" value="keyword" /><input type="submit" name="submit" value="商品を検索" /> </form> ソース等、具体的にお教え頂けると助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML
  • hiddenで送ったデータの取り出し方

    PerlもHTMLも初心者です。hiddenの使い方が分からないのですが、 ■sub test1 <form NAME="minshu" ACTION="test.cgi" METHOD="post"> <input TYPE="submit" > <INPUT TYPE="hidden" NAME="aso" VALUE="write"> .. ■test.cgi $hatoyama=$Form{'aso'}; と、hiddenで送った変数をtest.cgiで受け取る時、$Form{}で受け取ると決まっているのですか?$minshu{aso}とかでは受け取れないのですか? この場合、hiddenのnameはどういう役目をしているのですか? hiddenのname="minshu" とかすれば$minshu{aso}で受け取れるかと思っていたのですが、うまくいかないようなので..

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

    同じ場所に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
  • formのfileの値をhiddenでも持ちたい

    お疲れ様です。いつもお世話になっております。 on~~イベントで値をコピーするやり方でいけるのかもと思いつつ、 うまくイメージがまとまらないので質問させてください。 <input type="file">で、ファイルが選択されたら、その値(ファイルのパス)を同じフォーム内のhiddenにも持ちたいのです。 もっと具体的にいうと hiddenに持った時、ファイル名の拡張子にかかわらず、拡張子を落として、[ファイル名]_thumnail.jpgとつけて、submitしたいのです。 <form action="xxx.php" method="post" enctype="multipart/form-data" name="myForm"> <input type="file" name="upfile" /> <input type="hidden" name="thumnail" /> </form> document.myForm.upfile.value=document.myForm.thumnail.value; みたいな感じでできるのでしょうか。 よろしくお願いします。

  • 複数のボタンに対するActionと動的hiddenについて

    JavaScript初心者です。 入力内容を確認する画面があり、その画面からは実際にデータを 書き込む機能(1)と一時的に書込み、その結果を別ウィンドウで出力 するプレビュー機能(2)を考えています。 (1)も(2)もAction先は同じCGIで、プレビューの場合のみあるhidden値を 持たせ、Action先のCGI側でそのhiddenが存在すればプレビュー機能(2)、 なければ通常登録機能(1)と処理を分けています。 今問題となっているのはプレビュー実行後、登録を実行した場合、なぜか プレビューと同じ動作になってしまうという点です。 (別ウィンドウが立ちあがり、hidden属性もAction先へ渡ってしまっている) 初心者である為、解決方法がわからず、悩んでおります。 よいアドバイスをお願い致します。 =====================画面 ここから===================== ※<>はHTMLタグを示す <form>          確認画面           ----------+---------------------------------+ |データ1 | 入力内容1 | +-------------------------------------------+ |データ2 | 入力内容2 | ----------+---------------------------------+ |データ3 | 入力内容3 | +-------------------------------------------+ +--------------+   +--------------+ | プレビュー |   |  登録   | +--------------+   +--------------+ <input type="hidden" name="data1" value="入力内容1" /> <input type="hidden" name="data2" value="入力内容2" /> <input type="hidden" name="data3" value="入力内容3" /> </form> ※登録は以下で実行  <input type="button" value="登録" onClick="javascript: run();" /> ※プレビューは以下で実行  <input type="button" onClick="javascript: preview('30');" value="プレビュー" /> =====================画面 ここまで===================== =====================JS ここから===================== function preview(id){ var q = document.createElement('input'); q.type = 'hidden'; q.name = 'name'; q.value = id; newWindow =window.open("about:blank","preName","menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes"); newWindow.focus(); document.forms[0].appendChild(q); document.forms[0].target = 'preName'; document.forms[0].action = run.cgi; document.forms[0].method = 'post'; document.forms[0].submit(); } function run(){ document.forms[0].action = run.cgi; document.forms[0].method = 'post'; document.forms[0].submit(); return; } =====================JS ここまで=====================

  • HIDDENについて

    sea_clear_sky8です。 [環境] Win98SE PWS [質問内容] 次のページ、前のページ、最初のページ、最後のページっていうのを作って ページングさせたいのですが、 下記のように一つ一つにHIDDENNを作ると、全部のボタンが表示されている 場合にボタンをクリックすると下記SQLで、Commandオブジェクトのコマンドが設定されていませんとエラーが表示されます。 [SQL] "select * from test_t " & _ "where name like '%" & Request("nm") & "%' " & _ "order by id " & _ "limit " & Request("page_num")*10 & ",10" [最初のページ] response.write "<input type=""Submit"" value=""最初のページ&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""&0&"">" [次のページ] response.write "<input type=""Submit"" value=""次の10件&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" & request("page_num")+1 & """>" [前のページ] response.write "<input type=""Submit"" value=""前の10件&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" & request("page_num")-1& """>" [最後のページ] response.write "<input type=""Submit"" value=""最後のページ&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" &Abs(Int(-1*(AllCnt/10)))& """>" エラーの原因は最初のページと最後のページのVALUEの部分のvalue=""&0&""、 value=""" &Abs(Int(-1*(AllCnt/10)))& """の部分の記入の仕方が おかしいか、各ボタンごとにHIDDENを作成しているため、おかしいのでは ないかと考えています。 HIDDENを一個にする方法はありますか、 いろいろ考えていますが、考えつかない状態です。 また、他に原因があればよろしくお願いします。 すいませんが、ご教授願います。 よろしくお願いします。

  • 複数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

専門家に質問してみよう