2012-01-31 101 views
0

我想使這個表單與複選框獲取值1或0,排序布爾,並在MySQL上更新它,但我還沒有找到一種方法呢。也許你可以幫忙。我將發佈表單和接收它的代碼。我相信可能會有循環衝突,但我嘗試了一切,無法讓它工作。提前Tks。複選框選中或未選中布爾php mysql

形式

<form action="esconde_cat.php" method="post"> 
    <table width="300px" align="center" width="140" border="1"> 
     <tr> 
      <td></td> 
      <td width="200">Categoria</td> 
      <td width="100">Mostrar</td> 
     </tr> 
     <?php 
      include "conecta.php"; 
      include "verifica.php"; 

      $sql = "SELECT * FROM categorias ORDER BY ordem"; 
      $res = mysql_query($sql) or die (mysql_error()); 
      while ($linha=mysql_fetch_array($res)) { 
     ?> 
     <tr> 
      <td><input name="user[]" type="checkbox" value="true"/></td> 
      <td><?=$linha['1']; ?></td> 
      <td><?php if ($linha['3'] == TRUE){ echo 'SIM'; } else {echo 'NÃO'; } ?></td> 
      </td> 
     </tr> 

     <?php 
      } 
     ?> 
    </table> 
    <br/> 
    <table align="center"> 
     <tr> 
      <td> 
       <input type="submit" name="Delete" type="button" value="Alterar"> 
      </td> 
     </tr> 
    </table> 
</form> 

如果複選框被任其發展,你會得到在$_POST可變NO鍵接收表和最新MYSQL

<?php 

include "conecta.php"; 
include "verifica.php"; 

\\THIS PART WORKS, GETS IF THE CHECKBOX IS CHECKED AND RECORD IT ON DB 

if(isset($_POST['user'])) { 
    foreach ($_POST['user'] as $key => $read){ 
     $read =(@$_POST['user']=='0')? $_POST['user']:'1'; 
     echo $read; 
     $sql = "UPDATE categorias SET mostrar='$read' WHERE ordem='$key'"; 
     $res = mysql_query($sql) or die ("Erro ao excluir") . mysql.error(); 
    } 
} 

\\ON THIS PART OF THE CODE THAT I CANT GET THE VARIABLE TO GET THE 
\\VALUE FROM CHEBOXES THAT ARE UNCHECKED RECORDED TO DATABASE 

if (!isset($_POST['user'])) { 
    foreach ($_POST['user'] as $chave => $leia) { 
     $leia =(@$_POST['user']=='1')? $_POST['user']:'0'; 
     echo $leia; 
     $sql = "UPDATE categorias SET mostrar='$leia' WHERE ordem='$chave'"; 
     $res = mysql_query($sql) or die ("Erro ao excluir") . mysql.error(); 
    } 
} 

?> 

回答

4

的代碼。如果它被選中,則該鍵將被設置並且該值將是該複選框的值。

假設 「用戶[]」 的作品名稱,喜歡的東西:

<input type="checkbox" name="user[]" value="aa" /> 
<input type="checkbox" name="user[]" value="bb" checked="checked" /> 
<input type="checkbox" name="user[]" value="cc" checked="checked" /> 
<input type="checkbox" name="user[]" value="dd" /> 
<input type="checkbox" name="user[]" value="ee" checked="checked" /> 

你會期望$_POST是:

array(
    "user" => array(
     "1" => "bb" 
     "2" => "cc" 
     "4" => "ee" 
    ) 
);