プロが教える店舗&オフィスのセキュリティ対策術

度々、失礼します。
安易にここで質問しようとは考えていないのですが・・・

フォームの外に起動ボタンがあって、
フォームの中のチェックボックスの値を次のCgiに引渡したいのですが、
(アンカー(ボタン)のOnclickでJavaScriptを起動しています。)
チェックボックスの内容を渡す方法が分かりません。

どんな方法でも構いませんのでご存知の方、お教え願います。
お願いいたします。

A 回答 (2件)

補足を読ませてもらいましたが、要するに


「フォーム外のボタンを押したとき、MODEとdflgの値を後からくっつけて送りたい」ということですね?

actionの要素に直接パラメータを加えても送信データには反映されません。
フォーム内にMODEとdflgのinputタグをhiddenで作っておき、ボタンを押した後に個別に書き換えます。

document.msgform.MODE.value="DEL";
document.msgform.dflg.value="";

とすれば良いでしょう。
actionは"./MailList.cgi"だけで良いです。

なお、フォームの中にいくつsubmitボタンがあっても構いません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました!

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

お礼日時:2006/03/07 18:58

・起動ボタンはなぜフォームの外なのですか?


 内側に作れない理由があるんでしょうか。

・外にあったとしてもボタン押下時にフォームを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に問題があるのでしょうか?

補足日時:2006/03/07 16:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!