Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    invio di un singolo valore di checkbox all'onchange

    salve.

    io ho un form con dentro vari checkbox. vorrei che quando ne seleziono uno, inviasse al server solo il valore di quello che ho selezionato.

    codice:
        <form action='./index.php?status=banforum' method='post' name="banforum">
        <?
            while ($row=mysql_fetch_array($query, MYSQL_NUM)) {							
                if($row[1]=="1") {
                ?>
                    <input type="checkbox" onchange="javascript:document.banforum.submit()" checked="checked" value="<?=$row[0]?>" name="bforum"/>									
                <?
                } else {									
                ?>
                    <input type="checkbox" onchange="javascript:document.banforum.submit()" value="<?=$row[0]?>" name="bforum"/>																		
                <?									
                }
            }
        ?>	
        </form>
    invece invia solo il valore dell'ultimo checkbox checked. altre idee (anche con jquery) senza dover impostare un form per ogni checkbox?

    inoltre, se metto l'onchange su un checkbox che è checked, non parte l'evento o_O

    saluti

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se dai lo stesso nome a tutti i checkbox questo e' normale, vengono inviati tutti i valori di quelli selezionati separati da virgole, ma riferiti tutti a quel nome...

    Se metti l'onchange ma poi lo stato del checkbox non cambia... spiega meglio il comportamento che vorresti per tutti.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    sostanzialmente io ho la lista dei checkbox. vorrei che mi inviasse solo quello che seleziono/deseleziono. es

    1 checked val:"ciao1"
    2 no checked val:"ciao2"
    3 no checked val:"ciao3"
    4 no checked val:"ciao4"
    5 checked val:"ciao5"
    6 checked val:"ciao6"
    7 checked val:"ciao7"
    8 no checked val:"ciao8"

    se clicclo sul 3 (che non è selezionato) voglio che mi invii solo il valore "ciao3".
    se invece clicclo sul 7 (che è selezionato) voglio che mi invii solo il valore "ciao7".

    e così via...

    spero di essere stato più chiaro

  4. #4
    Codice PHP:
    name="bforum[]" 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <form action='./index.php?status=banforum' method='post' name="banforum">
    <input type="hidden" name="scelta">
        <?
            while ($row=mysql_fetch_array($query, MYSQL_NUM)) {							
                if($row[1]=="1") {
                ?>
                    <input type="checkbox" onclick="this.form.scelta.value=this.value;this.form.submit()" checked="checked" value="<?=$row[0]?>" name="bforum"/>									
                <?
                } else {									
                ?>
                    <input type="checkbox" onclick="this.form.scelta.value=this.value;this.form.submit()" value="<?=$row[0]?>" name="bforum"/>																		
                <?									
                }
            }
        ?>	
        </form>
    Ovviamente sul server dovrai prendere in considerazione solo il valore del campo "scelta"

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    eh lo avevo già messo così, ma mi manda tutti quelli checked. io voglio che mi mandi solo quello che seleziono in quel "momento"...

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da markzzz
    eh lo avevo già messo così, ma mi manda tutti quelli checked. io voglio che mi mandi solo quello che seleziono in quel "momento"...
    l'hai provato? e hai letto tutta la risposta?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    si si, ma mi riferivo al messaggio di whisher.

    il tuo codice funziona solo con i checkbox non selezionati. se lo provo con quelli già selezionati (checked) non invia il valore...non capisco il perchè...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ho fatto una lieve modifica, e adesso funziona con entrambi :
    codice:
        <form action='./index.php?status=banforum' method='post' name="banforum">
            <input type="hidden" name="bforum">
            <?
                while ($row=mysql_fetch_array($query, MYSQL_NUM)) {							
                    echo $row[0];
                    if($row[1]=="1") {
                    ?>
                        <input type="checkbox" 
                        onclick="this.form.bforum.value=this.value;this.form.submit()" checked="checked" value="<?=$row[0]?>" />									
                    <?
                    } else {									
                    ?>
                        <input type="checkbox" onclick="this.form.bforum.value=this.value;this.form.submit()" value="<?=$row[0]?>" />																		
                    <?									
                    } echo "
    ";
                } 
            ?>	
        </form>
    non ho idea del perchè ora funzioni

    visto che ci siamo, vorrei avere una chiarezza sul codice sopra. allora ditemi se quello che dico è corretto :

    1 - il codice sopra non presenta javascript
    2 - gli event handler non fanno parte nè del DOM nè del javascript, sono parte integrante del linguaggio html
    3 - la sintassi (per esempio) this.form.bforum.value agisce sul DOM
    4 - riguardo alla 3 : ma quella sintassi è proprio dell'html? del DOM? o è un linguaggio per il DOM?

    saluti

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    Originariamente inviato da markzzz
    1 - il codice sopra non presenta javascript
    2 - gli event handler non fanno parte nè del DOM nè del javascript, sono parte integrante del linguaggio html
    3 - la sintassi (per esempio) this.form.bforum.value agisce sul DOM
    4 - riguardo alla 3 : ma quella sintassi è proprio dell'html? del DOM? o è un linguaggio per il DOM?
    devo smentire tutto ciò... è esclusivamente JS! quindi, il codice sopra funziona solo se JS è attivato. quindi un modo senza JS non esiste?

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.