Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    passare valore con <select>

    Salve a tutti!
    Ho 2 tabelle,cinema e film , in relazione 1 a n dove i campi in relazione sono cinema.idcinema = film.cinema

    Attraverso una casella a discesa che mi recupera nomecinema dalla tabella cinema vorrei passare al file insertcinema.php il valore della chiave esterna corrispondente nella tabella film ovvero film.cinema .

    Come posso fare? Spero di essere stato chiaro.

    Il codice è questo:

    cinema.php
    Codice PHP:
    <?php

    include('connessione.php');
    $sql="SELECT idfilm,cinema, film, linkfilm,idcinema,nomecinema FROM film,cinema WHERE cinema.idcinema = film.cinema";

    $risultato_query=mysql_query($sql,$connessione);
    // controlla il risultato della query attraverso la funzione mysql_query

    $num_righe=mysql_num_rows($risultato_query);
    // restituisce il numero di record ottenuto dalla selezione




    echo"<html>";
    echo
    "<head>";
    echo
    "<title>Documento senza titolo</title>";
    echo
    "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
    echo
    "</head>";

    echo
    "<body>";
    echo
    "<form name=\"form1\" method=\"POST\" action=\"insertfilm.php\">";
     echo
    " <table width=\"75%\" border=\"0\">";
      echo
    "  <tr>"
    echo
    "  <td colspan=\"2\"><div align=\"center\"><font color=\"#0000FF\" size=\"+6\">[b]InserimentoFilm[/b]</font></div></td>";
       echo
    " </tr>";
        echo
    "<tr>"
        echo
    "  <td width=\"32%\">Titolo</td>";
         echo
    " <td width=\"68%\"><input name=\"titolo\" type=\"text\" id=\"titolo\" size=\"50\" maxlength=\"50\"></td>";
        echo
    "</tr>";
        echo
    "<tr> ";
         echo
    " <td>Linked</td>";
         echo
    " <td><input name=\"collegafilm\" type=\"text\" id=\"collegafilm\" size=\"50\" maxlength=\"100\"></td>";
        echo
    "</tr>";
        echo
    "<tr> ";
        echo
    "  <td>Cinema</td>";
        echo
    " <td><select name=\"nomecinema\" id=\"nomecinema\">";

              while(
    $riga=mysql_fetch_array($risultato_query)){
              
    $cinema=$riga["cinema"];
              
    $nomecinema=$riga["nomecinema"];
              echo
    "<option>$nomecinema</option>";
               }

          echo
    " </select></td>";
        echo
    "</tr>";

       echo
    " <tr>";
         echo
    " <td></td>";
         echo
    " <td><input type=\"submit\" name=\"Submit\" value=\"Invia\"></td>";
       echo
    " </tr>";
     echo
    " </table>  

    </p>"
    ;


    echo
    "</body>";
    echo
    "</html>";

    mysql_close($connessione)
    ?>
    insertfilm.php
    Codice PHP:
    <?
    INCLUDE('connessione.php');
     
    $numcinema=$_POST['cinema'];
    $titolo=$_POST['titolo'];
    $collegafilm=$_POST['collegafilm'];
    $nomecinema=$_POST['nomecinema'];

    echo
    "$numcinema $titolo $collegafilm $nomecinema";


    mysql_close($connessione)
        
    // chiusura della connessione con il database
    ?>
    l'echo in insertfilm.php mi restituisce tutto tranne $numcinema=$_POST['cinema'];

  2. #2
    ho passato con find il tuo script. Non hai nessun name = cinema nel tuo form.

    Ovvio che non lo trovi in $_POST ... non lo metti proprio...

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

  3. #3
    grazie x per aver risposto
    ho cambiato un pò il codice aggiungendo:

    Codice PHP:
    echo"<tr> ";
          echo
    "<td>Cinema</td>";
         echo
    "<td><input name=\"cinema\" type=\"text\" id=\"cinema\" value=\"$cinema\" size=\"50\" maxlength=\"50\"></td>";
        echo
    "</tr>"
    solo che però andando ad selezionare il valore echo"<option>$nomecinema</option>"; dal menù a tendina, non cambia in automatico
    echo"<td><input name=\"cinema\" type=\"text\" id=\"cinema\" value=\"$cinema\" size=\"50\" maxlength=\"50\"></td>";
    quindi passa sempre lo stesso valore in insertfilm.php

    come posso fare per fargli passare il valore corrispondente?

    Grazie!

  4. #4
    usa una SELECT invece di un INPUT

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

  5. #5
    Codice PHP:
    <SELECT NAME="CINEMA"> 
        <OPTION VALUE="<? echo $riga["nomecinema"]; ?> "> 
        <? echo "Metti quello che deve visualizzare nella select"?>  
         </OPTION> 
    </SELECT>
    1)Identazione obbligatoria;
    2) non devi far eseguire al server le tue pagine html ma lo deve fare il client(Evita echo per costruire pagine html) e scrivi in maniera pulita e leggibile il codice html.
    3)Se non sbaglio manca il tag di terminazione del form
    Roberto Dungino

  6. #6
    scusate ma mi sono perso.
    come posso fare per sistemarlo?

  7. #7
    dimmi dove ti sei perso che ti aiuto
    Roberto Dungino

  8. #8
    La parte di codice scrivila così:
    Codice PHP:

    <SELECT NAME="CINEMA"> 
      <? while($riga=mysql_fetch_array($risultato_query)){ ?> 

         <OPTION VALUE="<? echo $riga["nomecinema"]; ?> "> 
        <? echo "Metti quello che deve visualizzare nella select"?>   
         </OPTION>
      <? ?> 
    </SELECT>
    Roberto Dungino

  9. #9
    FUNZIONA. GRAZIE!

    qui c'è il codice per intero:

    Codice PHP:


    <?include('connessione.php');
    $sql="SELECT idfilm,cinema, film, linkfilm,idcinema,nomecinema FROM film,cinema WHERE cinema.idcinema = film.cinema";

    $risultato_query=mysql_query($sql,$connessione);
    // controlla il risultato della query attraverso la funzione mysql_query

    $num_righe=mysql_num_rows($risultato_query);
    // restituisce il numero di record ottenuto dalla selezione
    ?>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <form name="form1" method="post" action="insertfilm.php">
      <table width="75%" border="0">
        <tr> 
          <td colspan="2"><div align="center"><font color="#0000FF" size="+6">[b]Inserimento 
              Film[/b]</font></div></td>
        </tr>
        <tr> 
          <td width="32%">Titolo</td>
          <td width="68%"><input name="titolo" type="text" id="titolo" size="50" maxlength="50"></td>
        </tr>
        <tr> 
          <td>Link</td>
          <td><input name="collegafilm" type="text" id="collegafilm" size="50" maxlength="100"></td>
        </tr>
        <tr> 
          <td>idcinema</td>
    <td><SELECT name="cinema" id="cinema">
           <? while($riga=mysql_fetch_array($risultato_query)){ ?> 
           <OPTION VALUE="<? echo $riga["cinema"]; ?> "> 
           <? echo $riga["nomecinema"] ; ?>  
           </OPTION> 
        <? ?> 
    </SELECT> </td>
        </tr>
        <tr> 
          <td></td>
          <td><input type="submit" name="Submit" value="Invia"></td>
        </tr>
      </table>
      

    </p>
      

    </p>
      

    </p>
    </form>
    </body>
    </html>

  10. #10
    forse ho cantato vittoria troppo presto!

    passando i valori ad un file insertfilm.php

    Codice PHP:
    <?
    INCLUDE('connessione.php');
    $numcinema=$_POST['cinema'];
    $titolo=$_POST['titolo'];
    $collegafilm=$_POST['collegafilm'];



    $SQL="INSERT INTO film (cinema,film,linkfilm) VALUES ('$numcinema','$titolo','$collegafilm')";

     
    // serve per verificare se l'inserimento è avvenuto correttamente
         
    if(mysql_query($SQL,$connessione)){

        echo
    "inserimento avvenuto correttamente";
            }
          else{
          
    errore();
           exit;
            }


    mysql_close($connessione)
        
    // chiusura della connessione con il database
    ?>
    Succede che i dati vengono inseriti perfattamente ma, quando vado a riaprire il FORM, la casella a discesa giustamente incrementa di un valore dandomi cosi il nome dello stesso cinema ripetuto 2 volte a causa dell'inserimento di un valore nuovo nella chiave esterna cinema che è un INT.

    Un aiuto. Grazie!

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.