• 締切済み

テキストから要素を抜き出してフォームで送信したい。

<body> <form action="xxx.cgi" method="post"> <input type="hidden" name="n" value="v"> <table> <tr id="hoge_a"> <td>AAA</td> </tr> <tr id="hoge_b"> <td>BBB</td> </tr> </table> <input type="submit" name="submit"> </form> </body> というHTMLの中で、AAAを抜き出してフォームと一緒にpostでサブミットしたいのですが、javascriptで出来ますでしょうか。 よろしくおねがいします。

みんなの回答

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ 遊びとして、テーブルのすべてのデータをスペースで区切って送信します。 ・ サーバ側で、split()関数か何かで配列に切り出してください。 以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <head> <script> function sendTable(f){ var t=document.getElementById('table_a'); var ss = ""; for (var i=0 ; i<t.rows.length ; i++) { for (var j=0 ; j<t.rows[i].cells.length ; j++) { ss += t.rows[i].cells[j].innerHTML + " "; } ss += "\n"; } f.table_data.value = ss; alert(ss); } </script> </head> <body> <form action="xxx.cgi" method="post" onSubmit="sendTable(this)"> <input type="hidden" name="n" value="v"> <input type="hidden" name="table_data"> <table id="table_a"> <tr id="hoge_a"> <td>AAA</td> </tr> <tr id="hoge_b"> <td>BBB</td> </tr> </table> <input type="submit" name="submit"> </form> </body></html>

noname#72544
質問者

お礼

auty様、大変わかりやすい例を作成していただいて本当に有難うございます。javascript慣れてませんでしたが、少しいじっただけでいけました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

できます。が、普通に考えるなら <td>AAA<input type="hidden" name="POST時に付けたいNAME" value="AAA"></td> とか <td><input type="text" name="POST時に付けたいNAME" value="AAA" readonly></td> として、スタイルシートでinputに見せない、とか 手段があるわけだけど、なぜJavascript? Javascriptで、と思うに至った事情によってどんなスクリプトになるか変わってくるかも。

関連するQ&A