- ベストアンサー
JavaScriptでのPerl起動
度々、失礼します。 安易にここで質問しようとは考えていないのですが・・・ フォームの外に起動ボタンがあって、 フォームの中のチェックボックスの値を次のCgiに引渡したいのですが、 (アンカー(ボタン)のOnclickでJavaScriptを起動しています。) チェックボックスの内容を渡す方法が分かりません。 どんな方法でも構いませんのでご存知の方、お教え願います。 お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
補足を読ませてもらいましたが、要するに 「フォーム外のボタンを押したとき、MODEとdflgの値を後からくっつけて送りたい」ということですね? actionの要素に直接パラメータを加えても送信データには反映されません。 フォーム内にMODEとdflgのinputタグをhiddenで作っておき、ボタンを押した後に個別に書き換えます。 document.msgform.MODE.value="DEL"; document.msgform.dflg.value=""; とすれば良いでしょう。 actionは"./MailList.cgi"だけで良いです。 なお、フォームの中にいくつsubmitボタンがあっても構いません。
その他の回答 (1)
- asahina02
- ベストアンサー率47% (95/202)
・起動ボタンはなぜフォームの外なのですか? 内側に作れない理由があるんでしょうか。 ・外にあったとしてもボタン押下時にフォームをsubmitしてあげれば そのCGIが呼ばれるはずです。 ・チェックボックスの場合、チェックされている時は普通にValueの値が渡されるますが、 チェックされていない時にはそのパラメータ自体がなかったかと思います。 ・なので、パラメータがあるかないかという点でチェックされていたかどうかという判断すれば良いかと思います。 ・という訳で、基本的にはフォーム外からでも当該フォームをsubmitしてあげれば 普通に値が引き渡されると思います。
補足
早速のご回答ありがとうございます。 起動ボタンがフォームの外にあるのは、他のボタンでも同じフォームの データを他のCgiに渡したいためです。 以下がソースなのですが、 function delSubmit() { document.msgform.target = "_self"; var x = "MODE=DEL&dflg="; var i; for(i =0; i< document.msgform.elements.length;i++){ if(document.msgform.elements[i].checked) x = x + document.msgform.elements[i].value + "$$"; } document.msgform.action = "./MailList.cgi?" + x; document.msgform.submit(); } ・・・$$はデリミタです・・・ とパラメータを生成して渡しているのですが、 ”MODE=DEL”のみパラメータが渡りません。 他のパラメータは渡っているのですが・・・・・ なにかJavaScriptに問題があるのでしょうか?
お礼
ありがとうございます。 できました! まだまだですね・・・・@私 ありがとうございます。助かりました。