0

cckbox から未チェックの値を取得するにはどうすればよいですか?

私は3つのラジオボタンを持っています。最初のすべてのチェックボックスをオンにする必要があるをクリックすると、2番目のラジオボタンですべてのチェックボックスがオフになります。3 番目のラジオボタンは、いくつかのチェックボックスをオンにする可能性を提供し、チェックされていないすべてのチェックボックスは、UPDATE クエリを使用して 0 から 1 までの値を DB に送信します。ラジオボタンは正常に機能しますが、チェックされていないチェックボックスの値を取得して更新クエリに送信できません。フォーム要素を含む最初のページのコードは次のとおりです。

    //That is only a short version of my Select who works correct
    $abfrageT = "SELECT DISTINCT id_dexpd, acores.code_regate, detail_exp_devise.num_expertise ...
                    FROM acores, infos_bureau, demande_expertise_dev, detail_exp_devise, agents
                        WHERE acores.id_acores = '$id_acores'
                        AND demande_expertise_dev.date_dem_exp = '$expdev' ...";

    $ergebnisT = mysql_query($abfrageT) or die("Query failed with error: ".mysql_error());

        while($abfrageT = mysql_fetch_assoc($ergebnisT))
        {
            $newcup         =   $abfrageT['coupure'];
            $newpd          =   $abfrageT['code_devise'];
            $newns          =   $abfrageT['num_serie'];
            $IDX            =   $abfrageT['id_dexpd'];
            $NumExp         =   $abfrageT['num_expertise'];

  echo"<tr>";
// Here are the ckeckboxes:
  echo"<td bgcolor=".$bgcolor." id='myGlob2' align='center'><input type='checkbox' name='check1' value='$abfrageT[id_dexpd]' /></td>";
  echo"<td bgcolor=".$bgcolor." id='myGlob2'>&nbsp;&nbsp;". $newcup ." ". $newpd ."</td>";
  echo"<td bgcolor=".$bgcolor." id='myGlob2' >&nbsp;&nbsp;". $newns ."</td>";
  echo"<td >&nbsp;&nbsp;</td>";      
  echo'</tr>';

そして、ここに私の更新を含む2ページ目のコード:

$NumExp         = $_GET['NumExp'];
$IDX            = $_GET['check1']; 

$QryUpAnswerIdn = "UPDATE detail_exp_devise SET detail_exp_devise.exp_val  = 1
                WHERE detail_exp_devise.num_expertise = $NumExp
                AND id_dexpd = $IDX";
$ResUpAnswerIdn = mysql_query($QryUpAnswerIdn) or die("Query failed with error: " . mysql_error());

if ($IDX) {
$QryUpAnswerId = "UPDATE detail_exp_devise SET detail_exp_devise.exp_val  = 0
                WHERE detail_exp_devise.num_expertise = $NumExp
                AND id_dexpd = $IDX";
$ResUpAnswerId = mysql_query($QryUpAnswerId) or die("Query failed with error: " . mysql_error());   
}

ここに写真があります: ここに画像の説明を入力

アイデアはありますか?

事前にTHX

4

2 に答える 2

3

チェックされていないチェックボックスの値は取得できません。ブラウザは単にそれらを送信しません。回避策 ( <input type="hidden">JavaScript を使用して更新するなど) はありますが、これらは非常にハックに感じられるため、使用することはお勧めしません。

最も簡単な方法は、2 つのクエリを使用することです。

1 つはすべての値を 0 にリセットし、2 番目は選択した値を 1 に更新します。

この例では、フォームを処理する前に次のクエリを追加します。

UPDATE detail_exp_devise SET detail_exp_devise.exp_val  = 0
于 2012-10-28T11:11:05.417 に答える
0

これがベスト プラクティスかどうかはわかりませんが、同じ名前で値 0 の隠し入力を使用するチェックボックスごとに送信します。このようにして、チェックボックスが false の場合でも、値 0 の隠し入力がサーバ。

あなたの場合:

// Here are the ckeckboxes:
echo"<td bgcolor=".$bgcolor." id='myGlob2' align='center'>
  <input type='hidden' name='check1' value='0' />
  <input type='checkbox' name='check1' value='$abfrageT[id_dexpd]' />
</td>";
于 2012-10-28T11:09:22.213 に答える