- 締切済み
テキストから要素を抜き出してフォームで送信したい。
<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で出来ますでしょうか。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
・ 遊びとして、テーブルのすべてのデータをスペースで区切って送信します。 ・ サーバ側で、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>
- steel_gray
- ベストアンサー率66% (1052/1578)
できます。が、普通に考えるなら <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で、と思うに至った事情によってどんなスクリプトになるか変わってくるかも。
お礼
auty様、大変わかりやすい例を作成していただいて本当に有難うございます。javascript慣れてませんでしたが、少しいじっただけでいけました。