Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    il form passa il valore sbagliato

    allora questo è il codice del form
    codice:
    <form name="vota" action="elabora_vote.php" method="POST">
    <div class="votariquadro">
    <div class="submipiace"><label for="si">[img]mipiace.gif[/img]Mi piace!</label><input type="hidden" id="si" name="a" value="1" onclick="this.form.submit()"></div> 
    </div> 
    <div class="votariquadro">
    <div class="subnonmipiace"><label for="no">[img]nonmipiace.gif[/img] Non mi piace!</label><input type="hidden" id="no" name="a" value="2" onclick="this.form.submit()"></div>
    </div></form>";
    in pratica ho due immagini che se cliccate mi passano il valore dell input hidden tramite il label
    il problema è che nella pagina di destinazione passa sempre il valore 2.
    se provo a togliere hidden e metto radio funziona tutto però.
    per quale motivo secondo voi?

  2. #2
    Non l'ho testato, ma prova così:

    codice:
    <form name="vota" action="elabora_vote.php" method="POST">
    <div class="votariquadro">
    <div class="submipiace"><label for="si">[img]mipiace.gif[/img]Mi piace!</label><input type="hidden" id="si" name="a" value="1" onclick="this.form.submit()"></div> 
    </div> 
    </form>
    
    <form name="vota" action="elabora_vote.php" method="POST">
    <div class="votariquadro">
    <div class="subnonmipiace"><label for="no">[img]nonmipiace.gif[/img] Non mi piace!</label><input type="hidden" id="no" name="a" value="2" onclick="this.form.submit()"></div>
    </div>
    </form>";
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ok cosi funziona però adesso va a farsi benedire
    il display:inline del css
    nel senso che i due pulsanti vanno uno sotto l'altro

  4. #4
    A parte che è sbagliato il concetto del form...cliccando un'immagine tu fai submit del form, ma NON sai quale immagine è stata cliccata (cosa che invece sai con un radiobutton)...
    Probabilmente ti conviene rivedere la logica con cui invii il form. Se vuoi usare le immagini e inviare quale immagine (o dato collegato) è stata cliccata, o crei due form distinti con la stessa action oppure devi crearti uno scrippettino che, onclick, valorizzi un unico campo hidden che verrà poi inviato alla pagina della action.


  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ok credo di aver risolto anche il problema grafico
    grazie a entrambi

  6. #6
    Non sono ferrato in javascript, ma prova questa cosa che funge magari sistemandola un po':

    Codice PHP:
    <?php
    if (isset($_POST['a'])) {
        echo 
    $_POST['a'];
    }
    ?>

    <head>
        <script type="text/javascript"> 
            function submitForm(x) {
                if (x == 1) {
                    document.vota.a.value = "1";
                } else {
                    document.vota.a.value = "2";
                }
                document.vota.submit();
            }
        </script>
    </head>

    <form name="vota" action="index.php" method="POST">
        <input type="hidden" name="a" value=""/>
        [img]mipiace.gif[/img]
        [img]nonmipiace.gif[/img]
    </form>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Non riesco a modificare il post. Così ancora meglio:

    Codice PHP:
    <?php
    if (isset($_POST['a'])) {
        echo 
    $_POST['a'];
    }
    ?>

    <head>
        <script type="text/javascript"> 
            function submitForm(x) {
                document.vota.a.value = x;
                document.vota.submit();
            }
        </script>
    </head>

    <form name="vota" action="index.php" method="POST">
        <input type="hidden" name="a" value=""/>
        [img]mipiace.gif[/img]
        [img]nonmipiace.gif[/img]
    </form>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    L'errore è che i due input hanno lo stesso name A.
    devono avere name diversi o l'ultimo sovrascrive il primo

    <input type=hidden name=si value=true />
    <input type=hidden mane=no value=true />


    Ciao!

  9. #9
    Originariamente inviato da fmortara
    L'errore è che i due input hanno lo stesso name A.
    devono avere name diversi o l'ultimo sovrascrive il primo

    <input type=hidden name=si value=true />
    <input type=hidden mane=no value=true />



    Peggio che andare di notte...e lato ricezione come distingui che immagine è stata cliccata, visto che ambedue hanno valore true?? Allo script ricevente del form arriverebbe così
    si = true
    no = true

    ...
    Molto ma molto meglio la solzuione di Satifal (che vedendola così mi sembra anche elegante)

  10. #10
    si, la mia soluzione era pensata per i checkbox di cui si parlava, ma poi ho scritto hidden
    Ciao!

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.