Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Checkbox checked a seconda del valore

    forse è una cretinata ma nn riesco ad ottenere questo: ceccare o meno una checkbox a seconda del valore di un parametro get:
    Codice PHP:
                        if ($_GET['a'] == 0) {
                            $checked = 'checked="checked"';
                        } else {
                            $checked = '';
                        }
                        ?>
                        <input type="checkbox" name="attivato" value="ON" <?php echo $checked ?> />
    il problema è che è sempre checcata.

  2. #2
    Non capisco, un checkbox restituisce innanzitutto il valore che tu dai al checkbox stesso! Che senso ha guardare se il valore è 0 se si è messo come valore "ON"??
    Cmq, il problema con i checkbox è che non restituiscono alcun valore se non flaggati, si usa infatti utilizzare la funziona isset!
    Percui il tuo codice diventerebbe una cosa di questo tipo:

    codice:
    $checked="";
    if(isset($_GET["a"]))
      $checked="checked";

  3. #3
    allora, nel form dove inserisco i dati la checkbox è cos':
    codice:
    <input type="checkbox" name="attivato" value="" />
    se nn cecco il valore sul db è NULL; se cecco è 0.

    ora, tramite GET passo il valore al form di modifica e vorrei che se il valore è 0 la check sia ceccata, altrimenti no.
    nel form di modifica mi ero dimenticato di levare il valore ON.

    ho aggiunto 2 record: uno ceccando e l'altro no.
    quindi di uno è NULL e dell'altro è 0.
    nel form di modifica ho fatto così:
    Codice PHP:
                        <?php
                        $checked 
    "";
                        if (isset(
    $_GET["a"])) {
                            
    $checked "checked";
                        }
                        
    ?>
                        <input type="checkbox" name="attivato" value="" <?php echo $checked ?> />
    ma la checkbox rimane sempre ceccata.

  4. #4
    Scusa, allora mi sa che non ho capito!
    Dovresti scrivere il codice che usi per passarti i dati in get, cosa è una url con i dati caricati?
    Copia il codice o cmq fai un esempio che sia esplicativo.

  5. #5
    allora.
    ho una pagina per inserire i dati.
    un normalissimo form che tra le altre voci ha una checkbox:
    codice:
    <input type="checkbox" name="attivato" value="" />
    poi ho una pagina dove visualizzo i dati; alla fine c'è questo link:
    codice:
        echo '<td><a href="modifica.php?id=' . $row['utente_id'] . '&n=' . $row['utente_nome'] . '&c=' . $row['utente_cognome'] . '&e=' . $row['utente_email'] . '&s='
        . $row['id_settore'] . '&a=' . $row['attivato'] . '">Modifica</a> | ';
    i valori sono ripresi da una query; il valore che ci interessa è &a=' . $row['attivato'] . '.
    poi ho il form di modifica nella pagina modific.php dove ho messo questa checkbox:
    Codice PHP:
                        <?php
                        $checked 
    "";
                        if (isset(
    $_GET["a"])) {
                            
    $checked "checked";
                        }
                        
    ?>
                        <input type="checkbox" name="attivato" value="" <?php echo $checked ?> />
    qualsiasi record prendo in considerazione la checkbox in questo form risulta ceccata.

  6. #6
    prova così

    codice:
    $checked = '';                   
    if ($_GET['a'] === 0) {
     $checked = 'checked';
    }

  7. #7
    così nn è mai ceccata invece .
    o lo è sempre o nn lo è mai!!

  8. #8
    Ascolta una cosa, in php se è come in C, il valore null o 0 o false, sono visti più o meno alla stessa maniera, quello che ti ho fatto fare è controllare se è identico!
    Cmq, prova a cambiare il dato che ti salvi sul DB con 1, modificando semplicemente il value del checkbox, così ti salverà 1 al posto di zero e il controllo lo fai su 1 che è diverso da null negli if.

  9. #9
    hai ragione.
    ho messo value 1 e funziona.
    alla fine ho fatto così:
    Codice PHP:
                        <?php
                        $checked 
    '';
                        if (
    $_GET['a'] == 1) {
                            
    $checked 'checked="checked"';
                        }
                        
    ?>
                        <input type="checkbox" name="attivato" value="1" <?php echo $checked ?> />
    così funziona.
    grazie per la dritta!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.