• ベストアンサー

こんな<form>って、基本的にありえないでしょうか?

<form>の設置に付いて質問です。 この様な設置というものは基本的にありえないのでしょうか??ソースはショッピングカートのASPに渡すものなのですが・・・。例として、サッカーの映像をDVDとヴデオから選択するという感じです。 <td> <form action="https://www.○○○.com/cartcgi"> サッカー映像<br> <select name="option1"><option value="DVD">DVD<option value="VIDEO">VIDEO</select> </td> <td>1,000円</td> <td> <input type=hidden name="number" value="0001"> <input type="hidden" name="user" value="abc"> <input type=submit value="カートに入れる"> </form> </td> 様は、複数またがった<td>に対して、飛んで</form>が来ているという物です。 これをどうにか無理やり設定した場合、何とか見た目も動作もするのですが、ホームページソフトで(有名どころ全て)で、ぐちゃぐちゃになってしまい、閲覧が困難な状態になってしまいます。 DW何かでは、テーブル部分が一箇所飛び出てしまいます。 そこで、根本的に定義に問題があるのだと思い調べるのですが、このようなことを書いてあるところが発見できません・・・。 やはり<form>は1箇所の<td>内で記述するのが本来の使い方なのでしょうか?? 変な質問ですが、お詳しい方いらっしゃいましたら、アドバイス宜しくお願いいたします。

  • HTML
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

ありえないか?といわれればありえませんね。 やるのであれば、 <form> <table> <tr> <td><select><option></option><option></option></td> <td>1000円</td> <td><input type="submit"></td> </tr> </table> </form> (属性はめんどくさいので省略ました) つまり、<table>と</table>の中に<td></td>で囲まれていれば別ですが、<form>は入れないということです。

404not_found
質問者

お礼

kalzeさん有難う御座います。 大変勉強になりました!! すみません、もう1つ問題があるのですが・・・、というか書くのを忘れていました・・・。 この同様の記述が複数ある場合はどうすればよいのでしょうか?? 同じテーブル内に、先ほどと商品は違えど同じフォームが10個くらいある場合は、全体で囲んでしまうと混乱がおきそうな気がするのですが・・・。 やはりこういった場合は1つの<td>ないに1つずつ記述するほかすべは無いのでしょうか・・・? 何度もすみませんが、宜しくお願いいたします!!!

その他の回答 (3)

  • kalze
  • ベストアンサー率47% (522/1092)
回答No.4

複数ある場合どうするか、ですか。 #3様がかかれているように、入れ子にするとか。 もしくはtableは使わないで表っぽく表示されるようにCSS使うとか。 他には、submitのボタンで識別するとか。 1ページに羅列しないとか。 (構成自体変わりますけど) チェックボックスやラジオボタンで商品を選択させて、submitはひとつにするとか。 まぁこればっかりはサイト全体にも関わってくるので、仕様がわからないとなんともいえないですね。

回答No.3

とりあえず・・・。 要素は1つのまとまりです。 開始タグだけで終了タグがもとから無いもの,開始タグ終了タグ共にあるが終了タグは省略可能なもの,開始タグ終了タグ共にあり共に省略不可のものといろいろあります。 TD の下で FORM を記述するとしたら、それは TD 要素の配下に FORM 要素を置くという事です。TD の終了タグが現れたらそこで FORM も終り。しかも FORM は終了タグの省略は不可なので記述ミスありとなります。 ここで問題は、それを解釈したツールがどう対応するか。誤りを補正する動きが偶然に作成者の望む形だと見落としの可能性も・・・。 次に別の TD 要素下で FORM の終了タグが現れると・・・。ここで TD は終了タグは省略可能という事で FORM の終了タグの前に TD は終了タグが省略されているという解釈がされる可能性が・・・。という事でテーブルが崩れます・・・・・。 という事で改めて、各要素は1つづつのまとまりであると。 では FORM の各部品(inputなど)を複数要素に分けたい(別々の TD 配下としたい)場合はどうするか。 それらを含む要素とすれば良い。という事で TABLE の外に FORM の開始タグと終了タグを記述。 尚、1つの TABLE で複数の FORM が存在し類似の場合は・・・。TABLE を分割,入れ子にしてごまかすとか・・・。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

おかしいのはタグが入れ子になっていないところです。 HTMLでは  <element1><element2></element2></element1> のように入れ子にすることはできますが、  <element1><element2></element1></element2> のように互い違いにすることはできません。 ブラウザは互い違いでも何とか(強引に)解釈しようとしますから たぶんそれで変な表示になったのでしょう。 入れ子にしようとするとformの開始と終了はtdの外側になりますが trの中にはth,td以外を置くことはできませんから、 #1さんの言うとおりtable全体をformで囲むのがよいでしょうね。

404not_found
質問者

お礼

有難う御座います。 やはり同じような記述が複数ある場合は別の方法をとったほうが良いのでしょうか??? 商品が複数あるので困っています・・・。 よろしくお願いします。

関連するQ&A

  • ラジオボタンでうまくするには・・・・

    初めまして。 現在下記のプルダウン形式で、一つの価格が同じなので問題なく動くのですが <FORM action="cart/sys/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> <SELECT name=sur> <OPTION value="" selected>購入数量</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</SELECT> <INPUT type=submit value=カートに入れる> </FORM><BR> <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> </FORM> 同じ商品で1・2・3・4・5のそれぞれに単価が変わる設定をしたいのですが、うまくいく方法が見つからないです。 ラジオボタン形式で作ってみたものの・・・・ <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=submit value=カートに入れる> </FORM> <FORM> <INPUT type="radio" name="name1" value="2000">1袋<BR> <INPUT type="radio" name="name1" value="3900">2袋<BR> <INPUT type="radio" name="name1" value="5800">3袋<BR> <INPUT type="radio" name="name1" value="7500">4袋<BR> <INPUT type="radio" name="name1" value="8500">5袋</FORM> としてみましたがうまくいきません。 なにか方法ございましたら、ご教授いただければと思います。

    • ベストアンサー
    • HTML
  • formを連続してピッタリと上下に並べたいのですが

    DreamveaverでHTMLの編集をしております。 formを連続してピッタリと上下に並べたいのですが、 どうしてもformとformの間に隙間ができてしまいます。 これは仕方がないのでしょうか? 具体的には <form name="form1" method="post" action=""> <select name="select1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type=submit value="order"> </form> <form name="form1" method="post" action=""> <select name="select2"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type=submit value="order"> </form> な感じなんですが。 どなたかアドバイスいただけると嬉しいです。

  • 別formのhidden項目を自form値として送信したい

    同ページ内に <form name="form1" action="aa"> <input type="text" value="123"> <!-- hidden項目は無い場合もある --> <input type="hidden" name="form1_1" value="xxx"> <input type="hidden" name="form1_2" value="yyy"> <input type="submit"> </form> <form name="form2" action="bb"> <input type="text" value="456"> <input type="hidden" name="form2_1" value="www"> <input type="hidden" name="form2_2" value="zzz"> <input type="submit"> </form> といった感じのformタグをおいています。 そこで、form2を送信する時に、form1のhiddenのみform2のformValueとして送信したいのですが、どんな風に飛ばしたらよいのでしょうか? というより、from2を飛ばすときに、他のformのhidden項目があったら自formの値として送信することってできるんでしょうか? javascriptでできるんでしょうか? 素人質問ですいませんが、何か足がかりになるようなものをご教授いただければと思います。

  • 子ウインドウのカート送信時に親ウインドウに結果表示したい

    親ウインドウからカート表示する子ウインドウ開き、 カートの送信ボタンを押した後、子ウインドウには カートを表示したままで、親ウインドウにカートを 表示したいのです。通常のカートだと送信ボタンを押すと そのウインドウにカート内容が表示されてしまいます。 子ウインドウ <form action="http://www.****.cgi" method="post"> <input type="hidden" name="_shop_id" value="****"> <select name="_item"> <option value="商品A\200">商品A \200 </select> <input type="hidden" name="_zaiko" value=""><select name="_num"> <option value="1">1 <option value="2">2 <option value="3">3 </select> <BR> <input type="hidden" name="_memo1"><input type="hidden" name="_memo2"> <input type="hidden" name="_memo3"> <input type=hidden name="ORDSTEP" value="step1"> <input type="submit" value="買い物カゴへ"></form> 親ウインドウ <script language="JavaScript"> <!-- var openWin ; //--> </script> </HEAD> <BODY> <DIV style="width : 42px;height : 16px;top : 55px;left : 157px; position : absolute; z-index : 1; " id="Layer1"><input type ="button" value ="OPEN" onclick ="openWin = window.open('testcart1.htm', '', 'width=400,height=400');" 以上よろしくお願いします。

  • Submitが使えないFormでのデータ送信

    次のようなFORMでSubmitがなくって画像クリックし、次の画面へ いく場合ですが、どういうコードを書けばいいのでしょうか? よろしくお願いします。 <FORM name=myForm action=http://abc.com/abc.cgi method=post> <TD> <INPUT type=hidden value=itemA name=mycmd> <INPUT type=hidden value=9999 name=myid> <INPUT type=image src="/img/image.gif" border=0 name=item> </TD> </FORM>

  • ショッピングカート カスタマイズ

    すいません、966で投稿しているのですが 更に詳しく理解して頂く為に再投稿させて頂きます。 現在、初心者ながら出来上がっている 「ショッピングカート」をカスタマイズしているの ですが困っています。下にあるプルダウン項目の 「詳細」A5 10冊 19000円 選択してカートに 入れた際に「詳細」A5 10冊「価格」19000円と 分けて表示させたいのですが、どうしたら良いか わからず困っておりますどなたかご存じの方、 助けて頂けませんか? 詳細は「syouhinnumber」価格は「kakaku」と 決まっている。現在は詳細、「A5 10冊 19000円」と 表示される。これを「詳細」A5 10冊「価格」19000円 とカートの中で分けて表示されるようにしたい。 現在は <form Action="http://www.*****.jp/cgi-bin/acart/setcook.cgi" METHOD=POST> <INPUT TYPE="hidden"NAME="shouhinmei" VALUE="ヨコ 見積書"> <INPUT TYPE="hidden"NAME="kazu" VALUE="1"> <INPUT TYPE="hidden" NAME="kakaku" VALUE="19000"> <TABLE BORDER=0> <TR><TD ALIGN=right>詳細</TD> <TD><SELECT name="shouhinnumber"> <OPTION>A5 10冊 19000円 <OPTION>A5 20冊 22000円 <OPTION>A5 30冊 25000円 <OPTION>A5 50冊 28000円 <OPTION>A5100冊 31000円 </SELECT> </TD></TR> <TR><TD></TD> <TD valign="middle"> <INPUT NAME="SUBMIT" TYPE="SUBMIT" VALUE="注文する"> </TD></TR> </TABLE> となっています。訂正・追加する箇所を教えて 頂けませんか?お願い致します。

    • 締切済み
    • CGI
  • 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
  • tableタグとformタグの組み合わせ

    tableタグとformタグの組み合わせでどのように記述すれば、構文上正しいのでしょうか? 私は下のパターンで書いておりますが、間違いでしたら早めに改めたいので お聞きしました。 <table> <form> <input type="hidden" name="a" value="1"> <tr> <td> <input type="text" name="b" value=""> </td> </tr> <tr> <td> <input type="submit" value="OK" value=""> </td> </tr> </fomr> </table>

    • ベストアンサー
    • HTML
  • 1つのformで複数のactionを実行できますか?

    フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか? フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・ スタイルシートではデザイン上無理でした。 <form id="fm" name="fm" action="URL" method="POST"> <input type="hidden" name="shouhinmei" value="商品名"> <input type="hidden" name="kakaku" value="500"> <input type="image" src="kounyuu.gif value="購入"> <form method=get action="http://www.google.co.jp/search"> <input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form> </form> </form> +----+  +----+ |購入|  |検索| +----+  +----+

  • ショッピングカートの精算

    今、簡単なショッピングカートを作成しているのですが、品物の個数を プルダウンメニューで選択して、確認ボタンを押した時に品物の個数と その金額を精算するというスクリプトで悩んでいます。データベースなどは使わずにPHPだけで今進めています。 なにか例などを上げていただけますでしょうか? スクリプトは下記のような感じで作っています。 <form method = "post" action = "syoppingkakunin.php"> <select name = "ringo"> <option value = "1">1</option> <option value = "2">2</option> <option value = "3">3</option> <option value = "4">4</option> <option value = "5">5</option> </select> <input type = "submit" name = "submit" value = "確認"> <input type = "hidden" name = "Fruit" value = "ringo"> <input type = "hidden"name = "ringo" value = "100"> </form>

    • ベストアンサー
    • PHP

専門家に質問してみよう