Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    cancellare più valori con checkbox multipli

    Buongiorno,

    avrei la necessità di cancellare più valori (in un database MySql) mediante la "spunta" di checkbox. Tale spunta dovrebbe avvenire o selezionando manualmente i vari checkbox oppure selezionandone uno (in alto) che a sua vola li seleziona tutti.
    So come fare a eliminare campi specifici in un DB, ma non riesco a farlo con la selezione checkbox.
    Cosa mi consigliate?
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    quando invii un form, la checkbox viene inviata solo se selezionata; quindi quando fai la cancellazione basta che fai

    Codice PHP:

    if(isset($_POST['nomecampocheckbox'])){ 
       
    // se hai inviato i dati tramite POST entri nella condizione se la checkbox è stata spuntata
       // quindi qui cancelli, modifichi, fai tutto ciò che ti serve...


  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Si, ma io dovrei avere la possibilità di selezionare:
    - un campo;
    - più campi;
    - tutti i campi della pagina (quest'ultimo attraverso un checkbox che li seleziona tutti)

    Come faccio quindi a passare tutti i valori selezionati?
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    forse mi sono spiegato male..riprovo..quando tu selezioni 1 campo, 2 campi o tutti i campi, questi passano in automatico quando invii il form perchè è il form stesso che li invia SE sono selezionati!
    Quindi esattamente quale è il problema?

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    il problema è che non riesco a "raccogliere" tutti questi dati e passarli alla funzione che cacella i valori dal DB, dicendo di cancellare , appunto, questi valori selezionati.
    Dovrei metterli in un array associativo?

    E poi, come faccio a definire un checkbox che seleziona tutti gli altri?
    "To iterate is human, to recurse, divine." (R.(Heller))

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    il checkbox che seleziona/deseleziona tutti lo fai tramite javascript; per quanti riguarda le checkbox dipende dal name che gli dai...puoi anche utilizzare un array come nome in modo che con la stessa variabile (l'array appunto) ne recuperi poi tutti i valori.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    solo un esempio per farti capire....

    Codice PHP:
    <form name="prova" method="post" action="form.php">
    <input type="hidden" name="inviato" value="1">
    <input type="checkbox" name="img[]" value="1">
    <input type="checkbox" name="img[]" value="2">
    <input type="checkbox" name="img[]" value="3">
    <input type="checkbox" name="img[]" value="4">
    <input type="checkbox" name="img[]" value="5">
    <input type="checkbox" name="img[]" value="6">
    <input type="checkbox" name="img[]" value="7">
    <input type="submit" value="invia">



    <?php

        
    if(isset($_POST['inviato'])){
        
            foreach(
    $_POST['img'] AS $val){
                print 
    $val "
    "
    ;
            }
        
        }
        
    ?>

  8. #8
    Non serve usare il foreach, per quello che serve a the-bit, ma la potenza di MySQL e la clausola WHERE IN.
    Codice PHP:
    <form name="prova" method="post" action="form.php"
    <
    input type="hidden" name="inviato" value="1"
    <
    input type="checkbox" name="img[]" value="1"
    <
    input type="checkbox" name="img[]" value="2"
    <
    input type="checkbox" name="img[]" value="3"
    <
    input type="checkbox" name="img[]" value="4"
    <
    input type="checkbox" name="img[]" value="5"
    <
    input type="checkbox" name="img[]" value="6"
    <
    input type="checkbox" name="img[]" value="7"
    <
    input type="submit" value="invia"
    Nella pagina che riceve questo script, fai come segue
    Codice PHP:
    $array_img $_POST['img'];
    $clausola_IN implode(","$array_img);

    $sql "DELETE FROM tabella WHERE id IN ($clausola_IN) "
    Ed il gioco è fatto!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    Perfetto!
    Al di là della query, il foreach gli servirà a capire come recuperare i dati, visto che non sapeva come fare...

  10. #10
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Grazie mille ragazzi,
    provo e vi faccio sapere.
    "To iterate is human, to recurse, divine." (R.(Heller))

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.