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

    gestione checkbox multipli

    Ho una lista di checkbox
    codice:
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="10" name="checkbox"/>
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="50" name="checkbox"/>
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="20" name="checkbox"/>
    
    |-> <span>Se selezionati</span> <input type="Submit" name="del_selected" value="Cancella" disabled="disabled" onclick="document.datagrid.action=\''.$this->checkbox_url.'\'; document.datagrid.submit()" />
    Alla fine dei checkbox ho un pulsante di cancellazione.
    la funziona checkOne ha il compito di disabilitare il pulsante cancella se tutti i checkbox sono disattivati abilitarlo se almeno un checkbox e' attivo.

    Il problema e' questo.
    Quando faccio click sul pulsante cancella come faccio a passare un POST unico con tutti i valori checkati?
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: gestione checkbox multipli

    Originariamente inviato da Ndr
    Ho una lista di checkbox
    codice:
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="10" name="checkbox"/>
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="50" name="checkbox"/>
    <input class="dgCheckbox" type="checkbox" onclick="checkOne()" value="20" name="checkbox"/>
    
    |-> <span>Se selezionati</span> <input type="Submit" name="del_selected" value="Cancella" disabled="disabled" onclick="document.datagrid.action=\''.$this->checkbox_url.'\'; document.datagrid.submit()" />
    Alla fine dei checkbox ho un pulsante di cancellazione.
    la funziona checkOne ha il compito di disabilitare il pulsante cancella se tutti i checkbox sono disattivati abilitarlo se almeno un checkbox e' attivo.

    Il problema e' questo.
    Quando faccio click sul pulsante cancella come faccio a passare un POST unico con tutti i valori checkati?
    Per cominciare e meglio non utilizzare nomi degli oggetti riservati tipo (checkbox, form, submit) poi normalmente se utilizzi un pulsante submit e implicito già l'invio di un form.
    Su questa (document.datagrid.action=\''.$this->checkbox_url.'\' sintassi nutro qualche dubbio che forse crei dinamicamente in php che io non conosco sicuro che non sia cosi: document.datagrid.action=\".$this->checkbox_url.\"; poi checkbox_url cos'è? esiste un tag form?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

    Re: Re: gestione checkbox multipli

    Originariamente inviato da cavicchiandrea
    document.datagrid.action=\".$this->checkbox_url.\"; poi checkbox_url cos'è? esiste un tag form?
    La sintassi e' piu' che corretta
    Fai conto che qui c'e' scritto
    document.datagrid.action="cancella.php";

    Il tag form c'e' e il suo nome e' datagrid.

    Allo stato attuale, il form invia il valore, ma invia l'ultimo valore selezionato.
    Esempio
    Io checco il primo e l'ultimo... il form mi posta solo l'ultimo, quindi prendendo l'esempio iniziale, in php avro' $_POST['checkbox'] = '20'; ma non c'e' traccia del 10
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bellaforza, li hai chiamati tutti allo stesso modo. Se vuoi passare un array, chiamali come tali:
    codice:
    <input type="checkbox" .... name="check[]" />
    oppure li numeri e li chiami check_1, check_2... check_n
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Ok ma a questo punto si pone un altro problema: quello del controllo per l'abilitazione o meno del pulsante.

    ora uso questa funzione
    codice:
    function checkOne() {
       document.datagrid.del_selected.disabled=false;
       for (i=0;i<document.datagrid.check.length;i++)
           if (document.datagrid.check[i].checked==true)
                 break;
        if (i == document.datagrid.check.length) 
            document.datagrid.del_selected.disabled=true
    }
    ma torna errore su document.datagrid.check.length in quanto non esiste la propriet' length su chek. Ma check a questo punto non e' un array?
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    step indietro: andiamo a recuperare l'array di checkbox.

    codice:
    function checkOne() {
       document.datagrid.del_selected.disabled=false;
       var myCheckBoxes = document.datagrid.elements['check[]']; //array di checkboxes
       ...
    e comunque, metti le parentesi {} e i punti e virgola, perché altrimenti capire la sintassi è un casino.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    ok fatto!! tante grazie!!!
    Posto il codice... potrebbe servire a qualcun altro

    Codice javascript
    codice:
    <SCRIPT language=javascript>
    		        function checkAll() {
    					check=true;
    			        for (i=0;i<document.datagrid.check.length;i++) {
    			               if (document.datagrid.checkall.checked==true) 
    			                      document.datagrid.check[i].checked=true;
    			               else 
    			                   document.datagrid.check[i].checked=false;
    			        }
    			}
    			function chkBoxes() {
    			        document.datagrid.del_selected.disabled=false;
    			        var myCheckBoxes = document.datagrid.elements['check[]']; //array di checkboxes 
    					for (i=0;i<myCheckBoxes.length;i++)
    			           if (myCheckBoxes[i].checked==true)
    							break;
    			        if (i == myCheckBoxes.length) 
                                       document.datagrid.del_selected.disabled=true;
    			}
    </SCRIPT>
    Codice html
    codice:
    <form name="datagrid" method="post">
    <input name='checkAll' type='checkbox' onClick="checkAll();">
    <input name="check[]" value="1" type="checkbox" class="dgCheckbox" onClick="chkBoxes();" />
    <input name="check[]" value="2" type="checkbox" class="dgCheckbox" onClick="chkBoxes();" />
    <input name="check[]" value="3" type="checkbox" class="dgCheckbox" onClick="chkBoxes();" />
    <input type="Submit" name="del_selected" value="Cancella" disabled="disabled" onclick="document.datagrid.action="cancella.php"; document.datagrid.submit()" />
    </form>
    nel codice php trovate i dati con
    Codice PHP:
    print_r($_POST['check']); 
    Ciao e grazie ancora!!!!
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

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.