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

    Problema con il POST di un checkbox

    Ciao ragazzi!
    Tempo fa, mi ero costruito una semplice form per aggiornare un db, con PHP versione non mi ricordo cosa.
    Dopo qualche tempo (sicuramente più di un anno) riprendo in mano gli strumenti arruginiti e voglio ricreare il tutto.
    Installo più o meno le ultime versioni di tutto (PHP 5.2, Apache 2.0.59, mySql 5.0.24) e ripristino il backup che mi ero fatto: non funziona quasi nulla!!
    Trovo in Internet vari suggerimenti su questo o quel parametro che nel frattempo non è più di default e riesco a far funzionare quasi tutto: mi rimane un cavolo di checkbox che non funziona!!
    La cosa che mi preoccupa è che qui (proprio dal sito html.it) mi dice, quando spiega il post per il check box:
    "Attenzione però: se la checkbox non viene selezionata dall'utente, la variabile corrispondente risulterà non definita."
    che è esattamente quello che succede a me....
    ....solo che non spiega COSA si debba fare, quindi, per usare un checkbox!!
    Ovvero: se io "flaggo" il checkbox o lo lascio "flaggato" tutto ok, se da "flaggato" lo "de-flaggo", mi dice:
    "Undefined index: Visible in C:\......" dove Visible è il nome del mio checkbox
    Come faccio?

  2. #2
    Fai un semplicissimo controllo sull'esistenza della variabile:

    codice:
    if (isset( $_POST['nome_checkbox'] ) )
    In questo modo controlli prima se esiste la variabile. Se non esiste non succede. Se invece esiste lo script entra nell'if e tu fai tutte le operazioni che vuoi.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    Grazie, ma quello era uno degli accorgimenti che avevo già seguito per far funzionare il tutto...
    ... in realtà si tratta di un form con anche altri input... il checkbox è l'unico che mi da problemi, e solo quando lo porto su unchecked!

  4. #4
    Ragazzi,
    possibile che nessuno mi sappia dare un aiutino?
    Ripeto ho un form con n variabili all'interno, nessuna di queste mi dà problemi, solo un checkbox mi da quell'errore, e solo se lo porto da "checked" a "unchecked"....
    Che posso fare??

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da marcotti
    Ragazzi,
    possibile che nessuno mi sappia dare un aiutino?
    Ripeto ho un form con n variabili all'interno, nessuna di queste mi dà problemi, solo un checkbox mi da quell'errore, e solo se lo porto da "checked" a "unchecked"....
    Che posso fare??
    Applicando il suggerimento di mircov non dovresti avere problemi.

  6. #6
    Grazie nicola75ss,
    ma come spiegavo anche a mircov, il form che creo è fatto da 9 campi e se non avessi aggiunto if (isset( $_POST['change'] ) ) (dove 'change' è il nome del form), nessuno di quelli funzionerebbe.
    Proprio perché avevo già aggiunto quest'istruzione mi domando come mai gli altri 8 funzionano perfettamente mentre il checkbox no!!!
    Forse sbaglio l'uso del flag:
    come si fa a dire al DB che se il checkbox è flaggato vale uno altrimenti 0 (o null)?

    Grazie

    marcotti

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    nel tuo form alla checkbox di nome change dai value="1"

    una volta che invii il form fai l'assegnazione così (equivale all'if postato da mircov):
    se è postato recuperi il valore (1) altrimenti assegni 0 e non hai nessun notice

    $change = isset($_POST['change']) ? $_POST['change'] : 0;

  8. #8
    Chiedo venia ad entrambi,
    non avevo capito intendeste di fare il controllo sula singola variabile, non sull'intero form (come facevo io).
    Grazie mille dell'ottima idea, ora funziona a perfezione!

    Cheers

    marcotti

  9. #9
    Il problema lo hai solo con il checkbox per il funzionamento stesso del check box!
    Infatti quando invii un form vengono inviati i valori di tutti i campi input. Solo i checkbox (forse anche le combo box, non ho mai provato!) inviano il valore solo se checcati. Se non li selezioni, quindi, avrai una variabile non valorizzata e ricevi l'errore. Ecco perchè va fatto il controllo sull'esistenza della variabile! Se esiste è stata sicuramente selezionata!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.