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

    Script per votazione non funziona

    Buona sera, vorrei fare un sistema di votazione con le ckeckbox, ma la difficoltà che ho è nel farlo,
    ho provato diverse soluzioni ma niente da fare.

    Questa è l'ultima prova che ho fatto ma senza risultato:
    <html>
    <body>

    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method="post">
    <font face='Verdana, Arial, Helvetica, sans-serif' size='-2' color='Black'>Vota il tuo brano</font>



    <table border="1" width="100%" height="200">
    <tr>
    <td width="20%">
    <font face='Verdana, Arial, Helvetica, sans-serif' size='-2' color='Black'>Seleziona il brano</font>

    La riva<input type='checkbox' name="brano1" value='la riva'>

    Sempre <input type="checkbox" name="brano2" value="sempre">

    Immagine<input type='checkbox' name="brano3" value='immagine'>

    Siamo<input type="checkbox" name="brano4" value="siamo">

    Desiderio<input type='checkbox' name="brano5" value='desiderio'>

    Sospesa<input type="checkbox" name="brano6" value="sospesa">

    <input type='submit' name='submit' value='VOTA'>


    </font>

    </td>
    <td>
    <?
    for($i=0;$i<6;$i++){
    echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='-4' color='Black'>
    M<input type='checkbox' name='voto1' value='3'>
    S<input type='checkbox' name='voto2' value='6'>
    B<input type='checkbox' name='voto3' value='8'>
    O<input type='checkbox' name='voto4' value='10'>

    ";
    echo "</font>";
    }
    ?>

    </tr>
    </table>
    <?php
    if(isset($_POST['submit'])){

    $voto1 = $_POST["voto1"];
    $voto2 = $_POST["voto2"];
    $voto3 = $_POST["voto3"];
    $voto4 = $_POST["voto4"];

    $brano1 = $_POST['brano1'];
    $brano2 = $_POST['brano2'];
    $brano3 = $_POST['brano3'];
    $brano4 = $_POST['brano4'];
    $brano5 = $_POST['brano5'];
    $brano6 = $_POST['brano6'];

    if($brano1!="" || $voto1!="" || $voto2!="" || $voto3!="" || $voto4!=""){
    echo "Il voto del brano $brano1 è: $voto1 $voto2 $voto3 $voto4
    ";
    }
    if($brano2!="" || $voto1!="" || $voto2!="" || $voto3!="" || $voto4!=""){
    echo "Il voto del brano $brano2 è: $voto1 $voto2 $voto3 $voto4
    ";
    }
    if($brano3!="" || $voto1!="" || $voto2!="" || $voto3!="" || $voto4!=""){
    echo "Il voto del brano $brano3 è: $voto1 $voto2 $voto3 $voto4
    ";
    }

    }
    ?>
    </form>
    </body>
    </html>

    Il problema, è che facendo cosi, mi restituisce voti che non scelgo...
    Allora vorrei che ogni brano avesse il proprio voto...
    Sapreste dirmi come fare?

    Grazie mille...

  2. #2
    ciao,

    bisognerebbe provarlo. ma di primo acchito si nota una grossa incongruenza. Il voto ha lo stesso nome per tutti. Il che comporta la sovrascrittura e l'associazione dello stesso voto a tutti.

    Il voto dovrebbe essere identificato con il brano. E poi dovrebbe essere solo uno. Forse sarebbe piu' utile un radio piu' che un checkbox.

    Infine la stampa avverrebbe per associazione brano-voto....

    esempio:
    codice:
    $n=1;
    for($i=0;$i<6;$i++){ 
    echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='-4' color='Black'> 
    M<input type='checkbox' name='voto[$n]' value='3'>
    S<input type='checkbox' name='voto[$n]' value='6'>
    B<input type='checkbox' name='voto[$n]' value='8'>
    O<input type='checkbox' name='voto[$n]' value='10'>
    
    "; 
    echo "</font>";
    $n++;
    }
    dove $n rappresenta il numero del brano. ($voto[1], $voto[2] ..)

    La stampa sara':
    codice:
    if(isset($_POST["voto"][1]) AND isset($_POST["brano1"])) {
    echo "$_POST[brano1] - $_POST[voto][1]";
    insomma qualcosa del genere.... da provare ed affinare ovviamente..


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ti ringrazio adesso vedo se funziona.. come sempre un grande grazie

  4. #4
    Non credo c'entri qualcosa ma... e' meglio scrivere il codice HTML pulito!

    codice:
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method="post">
    Prima ai messo l'apice singolo dopo "action", e dopo su "method" ai messo quello doppio!

  5. #5
    Originariamente inviato da piero.mac
    ciao,

    bisognerebbe provarlo. ma di primo acchito si nota una grossa incongruenza. Il voto ha lo stesso nome per tutti. Il che comporta la sovrascrittura e l'associazione dello stesso voto a tutti.

    Il voto dovrebbe essere identificato con il brano. E poi dovrebbe essere solo uno. Forse sarebbe piu' utile un radio piu' che un checkbox.

    Infine la stampa avverrebbe per associazione brano-voto....

    esempio:
    codice:
    $n=1;
    for($i=0;$i<6;$i++){ 
    echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='-4' color='Black'> 
    M<input type='checkbox' name='voto[$n]' value='3'>
    S<input type='checkbox' name='voto[$n]' value='6'>
    B<input type='checkbox' name='voto[$n]' value='8'>
    O<input type='checkbox' name='voto[$n]' value='10'>
    
    "; 
    echo "</font>";
    $n++;
    }
    dove $n rappresenta il numero del brano. ($voto[1], $voto[2] ..)

    La stampa sara':
    codice:
    if(isset($_POST["voto"][1]) AND isset($_POST["brano1"])) {
    echo "$_POST[brano1] - $_POST[voto][1]";
    insomma qualcosa del genere.... da provare ed affinare ovviamente..

    _____________________________________

    Ho dimenticato di dire una cosa, in pratica ho 6 brani ed ogni brano ha 4 voti a disposizione,ovviamente ogni brano puo ricevere soltanto un voto, però l'utente puo votare tutti e sei i brani contemporaneamente.
    A me servirebbe proprio questo caso, devo poter inviare al DB ogni brano con il suo voto...
    Il problema è che mi sto scervellando ma non ci riesco, mi date una mano per cortesia?
    Grazie mille...

  6. #6
    Originariamente inviato da ANTAGONIA
    _____________________________________

    Ho dimenticato di dire una cosa, in pratica ho 6 brani ed ogni brano ha 4 voti a disposizione,ovviamente ogni brano puo ricevere soltanto un voto, però l'utente puo votare tutti e sei i brani contemporaneamente.
    A me servirebbe proprio questo caso, devo poter inviare al DB ogni brano con il suo voto...
    Il problema è che mi sto scervellando ma non ci riesco, mi date una mano per cortesia?
    Grazie mille...
    stamane ho giochicchiato con il tuo script mentre aspettavo una persona, applicando i suggerimenti di cui sopra. vedi se gira.... devi pero' controllare alcune cose per evitare i NOTICE sui campi non compilati... insomma, e' da completare.
    codice:
    <html>
    <body>
    
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method="post">
    <font face='Verdana, Arial, Helvetica, sans-serif' size='-2' color='Black'>Vota il tuo brano</font>
    
    
    
    <table border="1" width="100%" height="200">
    <tr>
    <td width="20%">
    <font face='Verdana, Arial, Helvetica, sans-serif' size='-2' color='Black'>Seleziona il brano</font>
    
    La riva<input type='checkbox' name="brano1" value="la riva">
    
    Sempre <input type="checkbox" name="brano2" value="sempre">
    
    Immagine<input type='checkbox' name="brano3" value='immagine'>
    
    Siamo<input type="checkbox" name="brano4" value="siamo">
    
    Desiderio<input type='checkbox' name="brano5" value='desiderio'>
    
    Sospesa<input type="checkbox" name="brano6" value="sospesa">
    
    <input type='submit' name='submit' value='VOTA'>
    
    
    </font>
    
    </td>
    <td>
    <?
    $n=1;
    for($i=0;$i<6;$i++){
    echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='-4' color='Black'>
    M<input type='radio' name='voto[$n]' value='3'>
    S<input type='radio' name='voto[$n]' value='6'>
    B<input type='radio' name='voto[$n]' value='8'>
    O<input type='radio' name=\"voto[$n]\" value='10'>
    
    ";
    echo "</font>";
    $n++;
    }
    ?>
    
    </tr>
    </table>
    <?php
    if(isset($_POST['submit']) and $_POST['submit'] != "" )   {
    
    $voto1 = $_POST["voto"][1];
    $voto2 = $_POST["voto"][2];
    $voto3 = $_POST["voto"][3];
    $voto4 = $_POST["voto"][4];
    $voto5 = $_POST["voto"][5];
    $voto6 = $_POST["voto"][6];
    
    $brano1 = $_POST['brano1'];
    $brano2 = $_POST['brano2'];
    $brano3 = $_POST['brano3'];
    $brano4 = $_POST['brano4'];
    $brano5 = $_POST['brano5'];
    $brano6 = $_POST['brano6'];
    
    if($brano1!="" || $voto1!=""){
    echo "Il voto del brano $brano1 è: $voto1 
    ";
    }
    if($brano2!="" || $voto2!=""){
    echo "Il voto del brano $brano2 è: $voto2 
    ";
    }
    if($brano3!="" || $voto3!="" ){
    echo "Il voto del brano $brano3 è: $voto3 
    ";
    }
    if($brano4!="" || $voto4!="" ){
    echo "Il voto del brano $brano4 è: $voto4 
    ";
    }
    if($brano5!="" || $voto5!="" ){
    echo "Il voto del brano $brano5 è: $voto5 
    ";
    }
     if($brano6!="" || $voto6!="" ){
    echo "Il voto del brano $brano6 è: $voto6 
    ";
    }
    }
    ?>
    </form>
    </body>
    </html>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    grazie mille... lo provo più tardi!

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.