Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    residenza
    Bologna
    Messaggi
    38

    Problema con checkbox multiple

    Ciao a tutti, vi espongo un problema che proprio non riesco a risolvere sperando in un vostro aiuto.

    Ho una serie di checkbox all'interno di un ciclo while che in base alla selezione inviano il valore 1 o 0 a un campo di una tabella del mio database:

    il mio form

    codice:
    <form action="<?php echo $editFormAction; ?>" method="post" name="form2" id="form2">
    <table width="100%">
    <tr class="title">
    <td width="50%" class="head">Nome Asta</td>
    <td width="20%" class="head">tipo</td>
    <td width="10%" class="head">attiva</td>
    </tr>
     <?php do { ?>
    <tr>
    <td class="table1"><?php echo $row_dataauctionfree['fauctionName']; ?></td>
    <td class="table1"><?php echo $row_dataauctionfree['fauctionType']; ?></td>
    <td class="table1lastfield"><input type="checkbox" onclick="document.forms.form2.submit();" name="fauctionActive[]" value="<?php echo $row_dataauctionfree['id']; ?>"
    <?php if (!(strcmp(htmlentities($row_dataauctionfree['fauctionActive'], ENT_COMPAT, 'utf-8'),1))) {echo "checked=\"checked\"";} ?> /></td>
    </tr>
    <?php } while ($row_dataauctionfree = mysql_fetch_assoc($dataauctionfree)); ?> </form>
    </table>
    la query di update

    Codice PHP:
    if (isset($_POST ["fauctionActive"])) {
             
    $ids $_POST ['fauctionActive'];  
             
    $updateSQL = ("UPDATE f_auctionfree set fauctionActive=1 WHERE id IN ('".implode("','",$ids)."')");
             
    mysql_select_db($database_config$config);
      
    $Result1 mysql_query($updateSQL$config) or die(mysql_error());
             
    $updateSQL2 = ("UPDATE f_auctionfree set fauctionActive=0 WHERE id NOT IN ('".implode("','",$ids)."')");        
              
    mysql_select_db($database_config$config);
      
    $Result1 mysql_query($updateSQL2$config) or die(mysql_error());
    $updateGoTo "auctionsv_list.php";
      if (isset(
    $_SERVER['QUERY_STRING'])) {
        
    $updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
        
    $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      
    header(sprintf("Location: %s"$updateGoTo));
      } 
    Tutto funziona alla perfezione, ma rimane sempre selezionata una checkbox. Cioè, in pratica, non riesco ad avere tutte le checkbox deselezionate.

    Il problema è sicuramente causato dal fatto che il submit del form avviene tramite la selezione del checkbox(onclick="document.forms.form2.submit();") .

    Se infatti levo il submit automatico e metto il normale bottone di invio tutto va alla perfezione.

    Come risolvo?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Usando un pulsante submit invece che un checkbox.

    Se per inviare il form devi selezionare un checkbox, per forza di cose qeusto checkbox risulterà selezionato ed invierà il proprio valore allo script php.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.