• User Attivo

    Controllo checkbox non selezionata

    Ciao a tutti,

    ho creato un semplice form HTML dove all'interno vengono generate delle righe dinamicamente.
    Per ogni riga viene associata una checkbox.

    Quando il form viene inviato con apposito pulsante di salvataggio riesco tranquillamente a leggere le checkbox selezionate.
    Ma come faccio a leggere quelle deselezionate??

    Eccovi il codice HTML/PHP generato dinamicamente con un ciclo FOR:

    
    echo "<input type='checkbox' name='pubblicata[]' value='$id_richiesta'";/>
    
    

    ...e questo è il codice PHP incaricato di leggere le righe selezionate:

    
    if (isset($_POST['pubblicata']))
    {
        foreach($_POST['pubblicata'] AS $id_richiesta)
        {
            ....quì eseguo il mio script!
        }
    }
    
    

    Questo script leggere solo le checkbox selezionate. Come faccio a leggere quelle non selezionate?
    Qualche suggerimento? Grazie! :gthi:


  • User

    Dovresti postare un pò di codice in più perchè mi sfugge il senso del discorso.

    Se una checkbox è selezionata ha un detminato valore ma se non lo è che valore ha ?


  • User Attivo

    Se posto altro codice non farò altro che confondervi le idee. Quello che ho messo è sufficiente 🙂
    Se una checkbox non è selezionata non ha alcun valore. Infatti il codice if (isset($_POST['pubblicata'])) non lo prende neanche in considerazione.

    Qualcuno che ha già affrontato questo problema può aiutarmi per favore?


  • User

    Dunque.

    Quando invii una form, quale che sia il campo (testo, password, checkbox, ecc) ciò che puoi recuperare è solamente la coppia NomaCampo=>Valore
    accedendo solamente al suo valore.

    Esempi
    [php]

    <input type="text" name="username">
    echo $_POST['username']; // Stampa Aragonesse se l'ho messo

    <input type="checkbox" name="pubblicata" value="true">
    echo $_POST['pubblicata']; // Stampa true se seleziono la checkbox

    [/php]

    Ora, il tuo codice è perfetto così com'è. Prima controlli se è settato una valore che è sempre settato dato che un array di checkbox
    può contenere anche 1000 controlli 999 dei quali deselezionati ma ne basta uno perchè la condizione sia vera e faccia partire il foreach che
    del resto fa esattamente ciò per cui tu, o chi per te, l'ha scritto; non c'è niente di sbagliato ne niente da correggere.

    Il contrario di questo discorso è che se non metto uno username o se su 1000 checkbox ne deseleziono 1000 gli echo mi ritornano
    un errore di indice non definito e per quella sessione, fino al ricaricamento della pagina, tali variabili non esistono in nessun scope
    quindi non sono utilizzabili, gestibili, individuabili in nessun modo, per nessuno scopo o motivo senza un punto d'appoggio.

    Ergo:

    1. Dicci cosa vuoi fare perchè così stai chiedendo una cosa inutile oltre che impossibile senza sapere com'è strutturato il tuo codice e
      quindi se eventualmente ci sono punti d'appoggio intermedi sui quali operare altri controlli e scremare quelle valorizzate da quelle
      non valorizzate; anche se poi mi è oscuro cosa tu possa fartene di un qualcosa che non esiste se non essere a conoscenza di questo
      fatto.

    2. Spiegati un pò meglio.

    Ciao


  • User Attivo

    Niente da fare, ho risolto sostituendo il tutto con un pulsante "radio". Grazie comunque! 🙂


  • User

    @Protone86 said:

    Niente da fare, ho risolto sostituendo il tutto con un pulsante "radio". Grazie comunque! 🙂

    Di niente ...