• ベストアンサー

JavaScriptでのPerl起動

度々、失礼します。 安易にここで質問しようとは考えていないのですが・・・ フォームの外に起動ボタンがあって、 フォームの中のチェックボックスの値を次のCgiに引渡したいのですが、 (アンカー(ボタン)のOnclickでJavaScriptを起動しています。) チェックボックスの内容を渡す方法が分かりません。 どんな方法でも構いませんのでご存知の方、お教え願います。 お願いいたします。

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

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

補足を読ませてもらいましたが、要するに 「フォーム外のボタンを押したとき、MODEとdflgの値を後からくっつけて送りたい」ということですね? actionの要素に直接パラメータを加えても送信データには反映されません。 フォーム内にMODEとdflgのinputタグをhiddenで作っておき、ボタンを押した後に個別に書き換えます。 document.msgform.MODE.value="DEL"; document.msgform.dflg.value=""; とすれば良いでしょう。 actionは"./MailList.cgi"だけで良いです。 なお、フォームの中にいくつsubmitボタンがあっても構いません。

papope
質問者

お礼

ありがとうございます。 できました! まだまだですね・・・・@私 ありがとうございます。助かりました。

その他の回答 (1)

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

・起動ボタンはなぜフォームの外なのですか?  内側に作れない理由があるんでしょうか。 ・外にあったとしてもボタン押下時にフォームをsubmitしてあげれば  そのCGIが呼ばれるはずです。 ・チェックボックスの場合、チェックされている時は普通にValueの値が渡されるますが、  チェックされていない時にはそのパラメータ自体がなかったかと思います。 ・なので、パラメータがあるかないかという点でチェックされていたかどうかという判断すれば良いかと思います。 ・という訳で、基本的にはフォーム外からでも当該フォームをsubmitしてあげれば  普通に値が引き渡されると思います。

papope
質問者

補足

早速のご回答ありがとうございます。 起動ボタンがフォームの外にあるのは、他のボタンでも同じフォームの データを他の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に問題があるのでしょうか?

関連するQ&A

専門家に質問してみよう