dポイントプレゼントキャンペーン実施中!

現在PHP5.05+Mysql4.0.25にて、プログラムを作成しておりますが、

例えば10個のチェックボックスに対して、入力を2個まで
とするのに、Javascriptで出来るのを見つけましたが、
それはformタグ内で、数えている為に、

複数のチェックボックスのグループがあると
一度に送信出来なくなってしまいます。

一度に、複数のチェックボックスのグループの
データを送信するのに、何かよい方法はありますでしょうか、
よろしくお願いいたします。

A 回答 (4件)

<script type="text/javascript">


<!--
function limitation(f,limit){
var c=0;
for(var i=0;i<FORM.elements[f.name].length;i++){
if(FORM.elements[f.name][i].checked){
c++;//現在のチェックされている数を数える
}
}
if(c>limit){
alert("チェックできる数を超えています!");
return false; //制限数を超えていたら無かったことにする
} else {
return true;
}
}
//-->
</script>
のようなスクリプトを書いて、
>A<INPUT type="checkbox" name="check[]" value="A"><br>

A<INPUT type="checkbox" name="check[]" value="A" onclick="return limitation(this,2)"><br>
の様に置き換えます。
    • good
    • 0
この回答へのお礼

BLUEPIXYさん、有難う御座いました。
なんとか、出来ました。

お礼日時:2005/11/24 23:30

sunybu_2005さんはじめまして、papillon68と申します。




> 例えば10個のチェックボックスに対して、入力を2個まで
> とするのに、Javascriptで出来るのを見つけましたが、
> それはformタグ内で、数えている為に、
>
> 複数のチェックボックスのグループがあると
> 一度に送信出来なくなってしまいます。

これは具体的にはどのような処理でしょうか。
ソースを書いて下されば、状態が回答者に伝わります。


チェックボックスの名前を同名にしているのだと推測致します。
名前を配列とすることで思惑通り動作するのではないかと思います。
例)
<input type="checkbox" name="cheb[]">

ただし、JavaScriptでは配列とは判断してくれません。
全て同じ名前と判断し、うまく動作しないです。
これを回避するために、配列に添え字をつけたり、キーを振り、連想配列としたりします。

どういった処理をしているのかを具体的に教えてくだされば、もう少し詳しくお答えします。

下記のURLで以前同じような質問を回答しました。
http://www.php-j.com/forum/read.php?FID=3&TID=2328

この回答への補足

papillon68さん、有難う御座います。
NO2の細くのような感じにしようかと、思っておりますが

入力制限するには、check[]の中を数えて?
オオバーした場合に、エラーを出力すれば、
いいんですかね・・・

補足日時:2005/11/24 19:46
    • good
    • 0

>formタグ内で、数えている為に、複数のチェックボックスのグループがあると


>一度に送信出来なくなってしまいます。
送信ができないとか状況がよくわからないので、
実際のコードを補足して貰えませんか

この回答への補足

下記のようにすれば、データの取得は出来るのですが、
そうすると、入力制限をどうしようかと、迷っております。

<form name="FORM">
A<INPUT type="checkbox" name="check[]" value="A"><br>
B<INPUT type="checkbox" name="check[]" value="B"><br>
C<INPUT type="checkbox" name="check[]" value="C"><br>

D<INPUT type="checkbox" name="check2[]" value="D"><br>
E<INPUT type="checkbox" name="check2[]" value="E"><br>
F<INPUT type="checkbox" name="check2[]" value="F"><br>
<input type="submit" action="" method="POST" value="送信">
</form>

補足日時:2005/11/24 19:40
    • good
    • 0

がると申します。


んっと。チェックボックスに限らず、そういった入力制限をJavaScriptでやるのは避けたほうが賢明です。ある程度は可能でしょうが簡単に回避も出来るので。
そういったケースでは、飽く迄「サーバ側にあるPHPで」チェックして、エラーなら相応のエラー画面などではじくほうがよいです。

この回答への補足

がるさん、有難う御座います。
Javascriptは、避けたいのですが、
PHPだと難しくなりそうで・・・

補足日時:2005/11/24 19:33
    • good
    • 0

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