2012-04-15 22 views
0

を選択した場合は、チェックボックスの値を取得するためにREQた場合、私はいくつかのチェックボックスどのように読み取り専用ではなく

foreach ($result as $set){ 
    if ($set['Req']=='0') 
    ?><input type="checkbox" name="select[]" value="1"> 
    <?else?> 
    <input type="checkbox" name="select[]" value="1" checked READONLY DISABLED>?> 
} 

を持っている!= 0、チェックボックスは読み取り専用になり、必須のチェックを。そうでない場合、 ユーザチェックかが

は、4つのチェックボックスが発生存在すると仮定チェック可能

checkbox1 : readonly 
checkbox2 : select 
checkbox3 : not select 
checkbox4 : readonly 

現在選択[]でのみ、{1}、なぜなら読み取り専用/ポストませんチェックしていません値 。どのように{1,1,0,1}である選択[]を取得するのですか?ありがとう

更新: はどのように私はどのチェックボックスが選択されていません知っていると、ユーザはそのボックスをチェックしていない場合select[] = 0を追加することができますか?私は考えることができる

一つの方法は、私はこのケースでは、アレイ= 4の合計の長さを取得 であると私は今

をそれを得ることができますが、問題は、私が正しい位置に追加することができます方法です?

代わりにチェックボックスを無効にするので、あなたができる
currently i have select[] = {1,1,1} and $len=4; 

答えて

1

各チェックボックスに明示的な指標与えることが容易であるかもしれない:

<input type="checkbox" name="select[1]" value="1" /> 
<input type="checkbox" name="select[2]" value="1" /> 
<input type="checkbox" name="select[3]" value="1" /> 
<input type="checkbox" name="select[4]" value="1" /> 

をそしてissetに送信されたフォームに設定されているインデックスを確認してください。未チェック/無効のチェックボックスは、送信されたフォームには表示されません。

+0

ええ、簡単です、アイテムが存在しない場合、どのように '0'を追加できますか?私は[2] => '0'と[4] => '0'を追加する必要があることを意味するが、全長= 4と[1] => '1'と[3] => '1' ?ありがとう – user782104

1

<input type="checkbox" name="select[]" value="0" style="display:none;"> 

を...またはこれを試してみてください...

<input onfocus="this.blur();" type="checkbox" name="select[]" value="0"> 

... ORこの...

//this function returns True if a given field is checked 
function isChecked($chkname,$value){ 
     if(!empty($_POST[$chkname])){ 
      foreach($_POST[$chkname] as $chkval){ 
       if($chkval == $value){ 
         return true; 
       } 
      } 
     } 
     return false; 
    } 

$checkboxValues = array(
     array('milk','required'), 
     array('bread','not-required'), 
     array('juice','required') 
    ); 

$submittedValues = array(); 

foreach($item in $checkboxValues){ 
    if(isChecked('select', $item)){ 
     array_push($submittedValues, 1) 
    }else{ 
     array_push($submittedValues, 0) 
    } 
} 

HTMLフォームに...

foreach ($checkboxValues as $chkVals){ 
    if ($chkVals[1]=='required') 
    ?> 
      <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>"> 
    <?else?> 
      <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>" checked READONLY DISABLED> 
     ?> 
} 

各オプション値は異なる/固有のである必要があります。

+0

ユーザーが選択されているかわかりませんこの方法です。 –

+0

私はメッセージ – user782104

+0

を表示することはできますが、チェックボックスがオフの場合は値をポストできません。単純に言えば、私が望むものは次のとおりです。 – user782104

0

javascriptを使用すると、リクエストで無効なフィールドが送信されないため、必要な値にフォームの非表示フィールドを設定する必要があります。

+0

ええ、それは値を混ぜるでしょう。たとえば、チェックボックス1の隠しボックス1を追加すると、両方の名前=選択[]、投稿結果は倍になります – user782104

1

はこれを試してみてください。

<form name="myform" action="" method="post"> 

    <input type="hidden" name="select[1]" value=""> 
    <input type="checkbox" name="select[1]" value="1" checked readonly> 

    <input type="hidden" name="select[2]" value=""> 
    <input type="checkbox" name="select[2]" value="1"> 

    <input type="hidden" name="select[3]" value=""> 
    <input type="checkbox" name="select[3]" value="1" checked readonly> 

    <input type="hidden" name="select[4]" value=""> 
    <input type="checkbox" name="select[4]" value="1"> 
</form> 
関連する問題