Visualizzazione dei risultati da 1 a 3 su 3

Discussione: checkbox non in $_POST

  1. #1

    checkbox non in $_POST

    ciao a tutti,
    ho scritto in questo modo
    codice:
    		foreach($_POST as $key=>$valore)
    		{
    			//perchè il checkbox selezionato mi stampa ON
                                          if($valore == 'on') $valore = 1;
    			echo $key ."=". $valore ."
    ";
    			$mysqlc->query("UPDATE ".$tab." SET $key='$valore' WHERE id='".$_GET['id']."';");
    		}
    se il check è vuoto e lo seleziono TUTTO OK! la query mette 1 nel valore $_post['check1'].

    mentre se il check è selezionato e lo voglio deselezionare il $_POST non passa, resta vuoto e quindi non posso mettere a 0 il valore del checkbox.

    come posso risolvere?
    ---------------------------
    danielix05

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Intendi dire se il checkbox non e' selezionato non hai la chiave nel post??

    Fai il controllo diversamente.... se post diverso da uno allora setti a 0 ( se puo' essere solo 1 o 0).


    Ora non so com funziona il tuo sistema di update ma penso che il problema stia nel fatto che se non si cheka non puoi aggiornare quel campo no?? e resta a 1..

    Se la tabella e' come penso potresti settare prima tutto a 0 e poi a 1 quelli passati in POST(2 query) altrimenti dovresti fare un controllo dell'array a priori prima del ciclo e vedere quali chiavi mancano e settarle a zero se non esistono.

  3. #3

    non posso

    grazie m4rko80 della tua attenzione.

    Fai il controllo diversamente.... se post diverso da uno allora setti a 0 ( se puo' essere solo 1 o 0).
    non è possibile perchè se deseleziono il check la variabile non viene passata in alcun modo. ho già fatto la prova a stampare direttamente quel post con echo $_POST['checkbox1']; e risulta vuota

    potresti settare prima tutto a 0 e poi a 1 quelli passati in POST(2 query)
    è già così, quindi posso andare da 0 a 1 ma non viceversa

    dovresti fare un controllo dell'array a priori prima del ciclo e vedere quali chiavi mancano e settarle a zero se non esistono.
    come dicevo prima, se un check non è spuntato il relativo $_POST non viene inviato. quindi, non è che è vuoto, non c'è proprio nell'array.

    non riesco....
    ---------------------------
    danielix05

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.