Visualizzazione dei risultati da 1 a 9 su 9

Discussione: select in un ciclo

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70

    select in un ciclo

    NEl frattempo dirisolvere un problema per cuiho aperto un altro topic ho proseguito nel mio progetto e mi son trovato di fronte ad un altro problema:


    Stampo a video correttamente i dati dal db che mi servono,questo è il risultato:


    ottenuto con questo codice:
    Codice PHP:
    <form action="Inserisci_Voto.php" method="post" name="form2">

       <?
       
    echo "<table border='1'><tr><td>[b]Titolo Canzone</td><td>[b]ID</td><td>[b]Media voti</td><td colspan='2'><center>[b]Vota!</center></td></tr>";

       while (
    $row mysql_fetch_array($result2)) 
        { 
         echo 
    "<tr><td> $row[nome_canzone] </td>";
         
         
    $id $row[id_canzone];     
         echo 
    "<td>$id</td>";
         
         echo 
    "<td>voto medio op op</td>";
         
         
    //Stampa della select per la votazione
         
    echo "<td><select name='voto'>";
         for(
    $i=1$i<=10$i++)
          {
           echo 
    "<option value=\'$i\'>$i</option>";
          }
         echo 
    "</select></td>";
         
         echo 
    "<td><input type='submit' value='Invia'></td>";
         echo 
    "<input type='hidden' name='idcanzone' value='$id'>";
         
          
        } 
       
       
    ?>
       
       </table>
       </form>
    Purtroppo non riesco a fare quello che vorrei nonstante mole prove. Vorrei che se l'utente nella select accanto alla canzone con id 130 (ad esempio) selezionasse un voto(es. 10), premendo il tasto invia accanto si inviasse alla pagina Inserisci_voto.php il voto e l'id della canzone corrispondente in modo che posso inserirlo nella tabella del db che poi utilizzerò per fare la media dei voti. Potete darmi una mano visto che non riesco?grazie

  2. #2
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    visto che questa è una cosa un pò difficile da risolvere, ti consiglio un arrangiamento che uso anche io, utilizza dei radio button, uno per ogni file, che quando selezionati hanno il value con l'id del file, quindi, alla fine, inserisci una sola volta voto e submit, in modo che, utilizzando l'id, il voto si riferirà solo a quel file, senza problemi di confusione tra form

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Originariamente inviato da dararag
    visto che questa è una cosa un pò difficile da risolvere, ti consiglio un arrangiamento che uso anche io, utilizza dei radio button, uno per ogni file, che quando selezionati hanno il value con l'id del file, quindi, alla fine, inserisci una sola volta voto e submit, in modo che, utilizzando l'id, il voto si riferirà solo a quel file, senza problemi di confusione tra form
    Capisco, quindi faccio stampare tanti radio button quante sono le canzoni come ho fatto ora con la select. Poi stamperò una sola select che invierà il voto mentre il radio button selezionato invierà l'id della canzone. Ok ora provo e vediamo se riesco, in alternativa avevo pensato di inserire questa parte di codice <form action="Inserisci_Voto.php" method="post" name="form2"> all'interno del ciclo in modo che ogni pulsante d'invio accanto aduna canzone rappresentasse un form distinto ma stilisticamente e praticamente non so se possa essere una buona idea. Ora cmq provo come mi hai suggerito.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Ok ho sistemato cosi:
    Codice PHP:
    echo "<table border='1'><tr><td>[b]Titolo Canzone</td><td>[b]ID</td><td>[b]Media voti</td><td colspan='3'><center>[b]Vota!</center></td></tr>";

       while (
    $row mysql_fetch_array($result2)) 
        { 
         echo 
    "<tr><td> $row[nome_canzone] </td>";
         
    $id $row[id_canzone];     
         echo 
    "<td>$id</td>";
         echo 
    "<td>voto medio op op</td>";
         echo 
    "<td><input type='radio' name= 'id_canzone' value='$id'></td>";
        } 
       
       
    //Stampa della select per la votazione
       
    echo "<td><select name='voto'>";
         for(
    $i=1$i<=10$i++)
          {
           echo 
    "<option value=\'$i\'>$i</option>";
          }
       echo 
    "</select></td>";
       
    ?>
       
       <td><input type="submit" value="Vota!"></td></tr>
       </table>
       </form> 
    Nella tabelle Voti_Canzoni mi stampa l'id corretto della canzone ma mi mette sempre 0 come voto. Nella pagina inserisci voto ricevo cosi:
    $voto=$_POST[voto];
    e se stampo $voto a video mi esce una cosa strana, ad es se seleziono 7 come voto mi stampa:
    \\\'7\\\'
    e nella tabella mi mette 0. Da che può dipendere?

  5. #5
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    Codice PHP:
    echo "<table border='1'><tr><td>[b]Titolo Canzone</td><td>[b]ID</td><td>[b]Media voti</td><td colspan='3'><center>[b]Vota!</center></td></tr>";

       while (
    $row mysql_fetch_array($result2))
        {
         echo 
    "<tr><td> $row[nome_canzone] </td>";
         
    $id $row[id_canzone];     
         echo 
    "<td>$id</td>";
         echo 
    "<td>voto medio op op</td>";
         echo 
    "<td><input type='radio' name= 'id_canzone' value='$id'></td>";
        }
       
       
    //Stampa della select per la votazione
       
    echo "<td><select name=\"voto\">";
         for(
    $i=0$i<=10$i++)
          {
           echo 
    "<option value=\"$i\">$i</option>";
          }
       echo 
    "</select></td>";
       
    ?>
       
       <td><input type="submit" value="Vota!"></td></tr>
       </table>
       </form> 
    per la tabella posta il codice di inserimento

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Questo è il codice di inserimento:
    Codice PHP:
    <?
    include("config.inc.php");
    include(
    "funzioni.inc.php");

    $voto=$_POST[voto];
    $id_canzone=$_POST[id_canzone];

    //echo "$voto
    ";
    //echo "
    $id_canzone";

    $db = db_connetti();
    $query = " INSERT INTO Voti_Canzoni votoid_canzone 
               
    VALUES '$voto''$id_canzone' " ;

    if (mysql_query(
    $query$db))
      {
       echo '<h2>Votazione inserita</h2>

    ';
       echo 'Sarai automaticamente indirizzato alla Homepage Utenti entro pochi secondi...';
       ?>
       <html>
       <SCRIPT LANGUAGE="
    JavaScript">window.setTimeout("document.location='HomePageUtenti.php'",4000)</SCRIPT>
       </html>

       <?php  
      }

    ?>

  7. #7
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    Codice PHP:
    <?
    include("config.inc.php");
    include(
    "funzioni.inc.php");

    $voto=$_POST[voto];
    $id_canzone=$_POST[id_canzone];

    //echo "$voto
    ";
    //echo "
    $id_canzone";

    $db = db_connetti();
    $query = " INSERT INTO Voti_Canzoni votoid_canzone )
               
    VALUES '$voto''$id_canzone' " ;

    if (mysql_query(
    $query$db))
      {
       echo '<h2>Votazione inserita</h2>

    ';
       echo 'Sarai automaticamente indirizzato alla Homepage Utenti entro pochi secondi...';
    print ('<html><SCRIPT LANGUAGE="
    JavaScript">window.setTimeout("document.location='HomePageUtenti.php'",4000</SCRIPT</html>');
    }
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Inserendo gli / cosi:
    echo "<td><select name=\'voto\'>";
    non mi prende nessun valore e se poi provo a stampare nn c'è nulla e nella tabella mi salva 0

    Senza / continua a prendermi il voto cosi:

    \\\'3\\\'

    nn capisco xkè ci mette gli \ e gli apici

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    70
    Ho risolto togliendo gl / qui:
    echo "<option value=\"$i\">$i</option>";
    anke se nn so perchè

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.