- Home
- Categorie
- Coding e Sistemistica
- Coding
- Tag select e database
- 
							
							
							
							
							Grazie per la risposta Samyon, ma come faccio a recuperare il valore della select senza inviare action in un'altra pagina? 
 ho questo form:
 <code>
 <form method="POST" action="cerca_socio.php">
 Scegliere un cognome dalla lista:
 <select id="s_cognome" name="s_cognome">
 <?php
 include "./inc/config.php";
 $db=mysql_connect($db_host,$db_user,$db_pass);
 if ($db==false)
 die('Errore nella connessione. Verificare i parametri nel file
 config.php');
 mysql_select_db($db_name, $db)
 or die('Errore nella selezione del database. Verificare i parametri
 nel file config.php');
 // costruzione query
 $query="SELECT * FROMelenco_sociORDER BYcognome";
 $risultato=mysql_query($query,$db);
 while($riga = mysql_fetch_array($risultato)){
 $s_cognome=$riga['cognome'];
 echo "<option value = $s_cognome > s_cognome";
 }
 ?>
 </select>
 <input type="submit" value="Invia" />
 </form>
 </code>
 e funziona normalmente nella pagina cerca_socio.php.Se, invece voglio ottenere il risultato direttamente sotto la select, nella stessa pagina, come devo fare? 
 
- 
							
							
							
							
							Puoi utilizzare la stessa pagina, ma dovrai ricaricarla se vuoi usare PHP. Recuperi s_cognome con $cognome=$_POST['s_cognome']; e dopo la select se $cognome è valorizzato fai la query per visualizzarti gli altri dati  
 
- 
							
							
							
							
							Ma per fare questo nel form action devo mettere i doppi apici vuoti? Oppure devo mettere il nome della pagina stessa, in questo caso 'visualizza_socio.php'? 
 Grazie.
 
- 
							
							
							
							
							Il nome della stessa pagina.  
 
- 
							
							
							
							
							[php]<br><br> 
 <div id="visualizza_socio" align="center">
 VISUALIZZA SOCIO
 <br><br>
 <form method="POST" action="visualizza_socio.php">
 Scegliere un cognome dalla lista:
 <select id="s_cognome" name="s_cognome">
 <?php
 include "./inc/config.php";
 $db=mysql_connect($db_host,$db_user,$db_pass);
 if ($db==false)
 die('Errore nella connessione. Verificare i parametri nel file
 config.php');
 mysql_select_db($db_name, $db)
 or die('Errore nella selezione del database. Verificare i parametri
 nel file config.php');
 // costruzione query
 $query="SELECT * FROMelenco_sociORDER BYcognome";
 $risultato=mysql_query($query,$db);
 while($riga = mysql_fetch_array($risultato)){
 $s_cognome=$riga['cognome'];
 echo "<option value = $s_cognome > $s_cognome";
 }
 ?>
 </select>
 <input name="submit" type="submit" value="Invio">
 </form>
 </div><?php 
 if($_POST["s_cognome"]){
 include "./inc/config.php";
 $cognome=$_POST['s_cognome'];// connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM elenco_soci WHERE cognome = '$cognome'"; // risultato query $risultato=mysql_query($query,$db); echo "<div id='cerca_socio'> <table width='60%' align='center'> <tr><th colspan='7' align='left'>Dati Anagrafici</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Iscrizione</th> <th align='left'>Data Nascita</th> <th align='left'>Cognome</th> <th align='left'>Nome</th> <th align='left'>Tel. Abitazione</th> <th align='left'>Tel. Cellulare</th> </tr> "; // Riga contenente i dati while($riga = mysql_fetch_array($risultato)){ $id=$riga['id_socio']; $data_iscrizione=date('d/m/Y', $riga['data_iscrizione']); $data_nascita=date('d/m/Y', $riga['data_nascita']); echo " <tr> <td>$riga[id_socio]</td> <td>$data_iscrizione</td> <td>$data_nascita</td> <td>$riga[cognome]</td> <td>$riga[nome]</td> <td>$riga[telefono_abitazione]</td> <td>$riga[telefono_cellulare]</td> </tr> </table> "; } // connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM pagamenti WHERE id_socio = '$id' ORDER BY data DESC"; // risultato query $risultato=mysql_query($query,$db); echo "<br><br> <table width='60%' align='center'> <tr><th colspan='5' align='left'>Pagamenti</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Versamento</th> <th align='left'>Causale</th> <th align='left'>Descrizione</th> <th align='left'>Importo</th> </tr> "; // Riga contenente i dati $totale=0; while($riga = mysql_fetch_array($risultato)){ $id_socio=$riga['id_socio']; $importo=$riga['importo']; $totale=$totale+$importo; echo " <tr> <td>$riga[id_socio]</td> <td>$riga[data]</td> <td>$riga[causale]</td> <td>$riga[descrizione]</td> <td>€ $riga[importo]</td> </tr> "; } echo" <tr><td> </td></tr> <tr><td> </td></tr> <tr> <td colspan='5'><b>Totale Versato: € ".$totale.",00</b></td> </tr> </table><br></div>"; mysql_close($db);} 
 ?>[/php]Mi potresti dire cosa sbaglio? 
 
- 
							
							
							
							
							Se metto la stesso nome in action mi apre una nuova pagina, se metto i doppi apici torna all'index, ma credo che prima faccia qualcos'altro, solo che è così rapido che non riesco a vedere cosa fa prima di andare all'index. 
 
- 
							
							
							
							
							Prova così: 
 [php]<br><br>
 <div id="visualizza_socio" align="center">
 VISUALIZZA SOCIO
 <br><br>
 <form method="POST" action="visualizza_socio.php">
 Scegliere un cognome dalla lista:
 <select id="s_cognome" name="s_cognome">
 <?php
 require_once "./inc/config.php";
 $db=mysql_connect($db_host,$db_user,$db_pass);
 if ($db==false)
 die('Errore nella connessione. Verificare i parametri nel file
 config.php');
 mysql_select_db($db_name, $db)
 or die('Errore nella selezione del database. Verificare i parametri
 nel file config.php');
 // costruzione query
 $query="SELECT * FROMelenco_sociORDER BYcognome";
 $risultato=mysql_query($query,$db);
 while($riga = mysql_fetch_array($risultato)){
 $s_cognome=$riga['cognome'];
 echo "<option value = $s_cognome > $s_cognome </option>"; // mancava il tag di chiusura
 }
 ?>
 </select>
 <input name="submit" type="submit" value="Invio">
 </form>
 </div><?php 
 if($_POST["s_cognome"]){
 require_once "./inc/config.php";
 $cognome=$_POST['s_cognome'];// connessione al database 
 $db=mysql_connect($db_host,$db_user,$db_pass);
 if ($db==false)
 die("Errore nella connessione. Verificare i parametri nel file
 ./inc/config.php");// seleziona database 
 mysql_select_db($db_name, $db)
 or die("Errore nella selezione del database. Verificare i parametri
 nel file ./inc/config.php");// costruzione query 
 $query="SELECT * FROM elenco_soci WHERE cognome = '$cognome'";// risultato query 
 $risultato=mysql_query($query,$db);echo "<div id='cerca_socio'> 
 <table width='60%' align='center'>
 <tr><th colspan='7' align='left'>Dati Anagrafici</th></tr>
 <tr>
 <th align='left'>id</th>
 <th align='left'>Data Iscrizione</th>
 <th align='left'>Data Nascita</th>
 <th align='left'>Cognome</th>
 <th align='left'>Nome</th>
 <th align='left'>Tel. Abitazione</th>
 <th align='left'>Tel. Cellulare</th>
 </tr>
 ";
 // Riga contenente i dati
 while($riga = mysql_fetch_array($risultato)){
 $id=$riga['id_socio'];
 $data_iscrizione=date('d/m/Y', $riga['data_iscrizione']);
 $data_nascita=date('d/m/Y', $riga['data_nascita']);
 echo "
 <tr>
 <td>".$riga['id_socio']."</td>
 <td>".$data_iscrizione."</td>
 <td>".$data_nascita."</td>
 <td>".$riga['cognome']."</td>
 <td>".$riga['nome']."</td>
 <td>".$riga['telefono_abitazione']."</td>
 <td>".$riga['telefono_cellulare']."</td>
 </tr>
 </table>
 ";
 }// connessione al database 
 $db=mysql_connect($db_host,$db_user,$db_pass);
 if ($db==false)
 die("Errore nella connessione. Verificare i parametri nel file
 ./inc/config.php");// seleziona database 
 mysql_select_db($db_name, $db)
 or die("Errore nella selezione del database. Verificare i parametri
 nel file ./inc/config.php");// costruzione query 
 $query="SELECT * FROM pagamenti WHERE id_socio = '$id' ORDER BY data DESC";// risultato query 
 $risultato=mysql_query($query,$db);echo "<br><br> 
 <table width='60%' align='center'>
 <tr><th colspan='5' align='left'>Pagamenti</th></tr>
 <tr>
 <th align='left'>id</th>
 <th align='left'>Data Versamento</th>
 <th align='left'>Causale</th>
 <th align='left'>Descrizione</th>
 <th align='left'>Importo</th>
 </tr>
 ";
 // Riga contenente i dati
 $totale=0;
 while($riga = mysql_fetch_array($risultato)){
 $id_socio=$riga['id_socio'];
 $importo=$riga['importo'];
 $totale=$totale+$importo;
 echo "
 <tr>
 <td>".$riga['id_socio']."</td>
 <td>".$riga['data']."</td>
 <td>".$riga['causale']."</td>
 <td>".$riga['descrizione']."</td>
 <td>€". $riga['importo']."</td>
 </tr>
 ";
 }
 echo"
 <tr><td> </td></tr>
 <tr><td> </td></tr>
 <tr>
 <td colspan='5'><b>Totale Versato: € ".$totale.",00</b></td>
 </tr>
 </table><br></div>";
 mysql_close($db);
 }
 ?>[/php]@francodace said: se metto la stesso nome in action mi apre una nuova pagina, se metto i doppi apici torna all'index, ma credo che prima faccia qualcosaltro, solo che è così rapido che non riesco a vedere cosa fa prima di andare all'index. 
 Ma la pagina dove c'è questo script si chiama visualizza_socio.php?
 
- 
							
							
							
							
							Ho fatto copia e incolla, mi fa lo stesso difetto: 
 se lascio in action 'visualizza_socio.php' mi fa visualizzare regolarmente i dati, ma in una nuova pagina (che poi è la stessa);
 se invece nell'action metto i doppi apici va nella index.
 Prima di andare nella index ho l'mpressione che faccia qualcosa per un brevissimo tempo, si può fermare in qualche modo per vedere cosa fa?
 
- 
							
							
							
							
							Si la pagina si chiama 'visualizza_socio.php'. 
 
- 
							
							
							
							
							Perdonami che intendi con "ma in una nuova pagina (che poi è la stessa)" ? 
 Dici per il fatto che ricarica la pagina?
 
- 
							
							
							
							
							Scusami, intendo che mentre la pagina 'visualizza_socio.php' è visualizzata in un contesto di layout a tre colonne in posizione centrale quando clicco sul pulsante invio associato alla select mi si visualizza questa stessa pagina con i dati forniti, ma fuori da questo contesto. Fammi sapere se non mi sono spiegato bene. 
 Grazie.
 
- 
							
							
							
							
							Ah, la pagina allora è richiamata dentro un'altra.  Beh allora come action devi richiamare la pagina che include visualizza_socio.php.  
 
- 
							
							
							
							
							No, la pagina è richiamata dentro il div centrale del layout: 
 se vuoi provare ti do l'indirizzo del sito, ci sono dei dati fittizi che servono per le prove.
 
- 
							
							
							
							
							Si ho capito, ma la pagina principale con il layout a 3 colonne e questo div centrale che richiama visualizza_socio.php, come si chiama?  
 
- 
							
							
							
							
							la pagina principale si chiama 'index.php'. 
 Dalla colonna di sx (div id 'col-sx'), attraverso un menù carico le pagine nel div centrale (div id 'col-contenuti') e nel div in oggetto carico 'visualizza socio.php'.
 Mi si visualizza la select già popolata dai cognomi, effettuo la scelta, clicco su invia e la stessa pagina mi viene visualizzata come se fosse una nuova pagina, fuori dal contesto, bianca, ma con i dati esatti.ciao e grazie ancora. 
 
- 
							
							
							
							
							Scusa, cerco di essere più chiaro: la pagina principale si chiama 'index.php' ed è divisa in 3 col + heder e footer. 
 Dalla colonna di sx (div id 'col-sx'), attraverso un menù, scelgo le pagina da visualizzare che vengono caricate nel div centrale (div id 'col-contenuti').
 In questo caso, nel div in oggetto, carico la pagina 'visualizza socio.php' e vedo la select già popolata dai cognomi.
 Effettuo la scelta, clicco su invia e la stessa pagina 'visualizza.php' mi viene visualizzata fuori da questo contesto, come se fosse una nuova pagina, bianca, ma con i dati esatti, relativi alla scelta della select.Io invece vorrei che i dati mi comparissero sotto il tag select, ma nello stesso contesto. ciao e grazie ancora. 
 
- 
							
							
							
							
							L'url allora è: 
 vvv.domain.ext/index.php?qualchecosa=qualcos'altro:)? Oppure fai tutto tramite POST?  EDIT: proviamo a tagliare la testa al toro. Come action metti <? echo $_SERVER['PHP_SELF']; ?> 
  
 
- 
							
							
							
							
							<br><br> <div id="visualizza_socio" align="center"> VISUALIZZA SOCIO <br><br> <form method="POST" <? echo $_SERVER['PHP_SELF']; ?>> Scegliere un cognome dalla lista: <select id="s_cognome" name="s_cognome"> <?php require_once "./inc/config.php"; $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die('Errore nella connessione. Verificare i parametri nel file config.php'); mysql_select_db($db_name, $db) or die('Errore nella selezione del database. Verificare i parametri nel file config.php'); // costruzione query $query="SELECT * FROM `elenco_soci` ORDER BY `cognome`"; $risultato=mysql_query($query,$db); while($riga = mysql_fetch_array($risultato)){ $s_cognome=$riga['cognome']; echo "<option value = $s_cognome > $s_cognome </option>"; // mancava il tag di chiusura } ?> </select> <input name="submit" type="submit" value="Invio"> </form> </div> <?php if($_POST["s_cognome"]){ require_once "./inc/config.php"; $cognome=$_POST['s_cognome']; // connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM elenco_soci WHERE cognome = '$cognome'"; // risultato query $risultato=mysql_query($query,$db); echo "<div id='cerca_socio'> <table width='60%' align='center'> <tr><th colspan='7' align='left'>Dati Anagrafici</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Iscrizione</th> <th align='left'>Data Nascita</th> <th align='left'>Cognome</th> <th align='left'>Nome</th> <th align='left'>Tel. Abitazione</th> <th align='left'>Tel. Cellulare</th> </tr> "; // Riga contenente i dati while($riga = mysql_fetch_array($risultato)){ $id=$riga['id_socio']; $data_iscrizione=date('d/m/Y', $riga['data_iscrizione']); $data_nascita=date('d/m/Y', $riga['data_nascita']); echo " <tr> <td>".$riga['id_socio']."</td> <td>".$data_iscrizione."</td> <td>".$data_nascita."</td> <td>".$riga['cognome']."</td> <td>".$riga['nome']."</td> <td>".$riga['telefono_abitazione']."</td> <td>".$riga['telefono_cellulare']."</td> </tr> </table> "; } // connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM pagamenti WHERE id_socio = '$id' ORDER BY data DESC"; // risultato query $risultato=mysql_query($query,$db); echo "<br><br> <table width='60%' align='center'> <tr><th colspan='5' align='left'>Pagamenti</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Versamento</th> <th align='left'>Causale</th> <th align='left'>Descrizione</th> <th align='left'>Importo</th> </tr> "; // Riga contenente i dati $totale=0; while($riga = mysql_fetch_array($risultato)){ $id_socio=$riga['id_socio']; $importo=$riga['importo']; $totale=$totale+$importo; echo " <tr> <td>".$riga['id_socio']."</td> <td>".$riga['data']."</td> <td>".$riga['causale']."</td> <td>".$riga['descrizione']."</td> <td>€". $riga['importo']."</td> </tr> "; } echo" <tr><td> </td></tr> <tr><td> </td></tr> <tr> <td colspan='5'><b>Totale Versato: € ".$totale.",00</b></td> </tr> </table><br></div>"; mysql_close($db); } ?>non va mi si carica sempre a parte francodace.altervista.org 
 se vuoi provare, fai l'iscrizione ed io ti do i privilegi per accedere alla pagina in esame.ciao 
 
- 
							
							
							
							
							Intendevo così: [PHP]<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">[/PHP] 
  
 
- 
							
							
							
							
							<br><br> <div id="visualizza_socio" align="center"> VISUALIZZA SOCIO <br><br> <form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>"> Scegliere un cognome dalla lista: <select id="s_cognome" name="s_cognome"> <?php require_once "./inc/config.php"; $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die('Errore nella connessione. Verificare i parametri nel file config.php'); mysql_select_db($db_name, $db) or die('Errore nella selezione del database. Verificare i parametri nel file config.php'); // costruzione query $query="SELECT * FROM `elenco_soci` ORDER BY `cognome`"; $risultato=mysql_query($query,$db); while($riga = mysql_fetch_array($risultato)){ $s_cognome=$riga['cognome']; echo "<option value = $s_cognome > $s_cognome </option>"; // mancava il tag di chiusura } ?> </select> <input name="submit" type="submit" value="Invio"> </form> </div> <?php if($_POST["s_cognome"]){ require_once "./inc/config.php"; $cognome=$_POST['s_cognome']; // connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM elenco_soci WHERE cognome = '$cognome'"; // risultato query $risultato=mysql_query($query,$db); echo "<div id='cerca_socio'> <table width='60%' align='center'> <tr><th colspan='7' align='left'>Dati Anagrafici</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Iscrizione</th> <th align='left'>Data Nascita</th> <th align='left'>Cognome</th> <th align='left'>Nome</th> <th align='left'>Tel. Abitazione</th> <th align='left'>Tel. Cellulare</th> </tr> "; // Riga contenente i dati while($riga = mysql_fetch_array($risultato)){ $id=$riga['id_socio']; $data_iscrizione=date('d/m/Y', $riga['data_iscrizione']); $data_nascita=date('d/m/Y', $riga['data_nascita']); echo " <tr> <td>".$riga['id_socio']."</td> <td>".$data_iscrizione."</td> <td>".$data_nascita."</td> <td>".$riga['cognome']."</td> <td>".$riga['nome']."</td> <td>".$riga['telefono_abitazione']."</td> <td>".$riga['telefono_cellulare']."</td> </tr> </table> "; } // connessione al database $db=mysql_connect($db_host,$db_user,$db_pass); if ($db==false) die("Errore nella connessione. Verificare i parametri nel file ./inc/config.php"); // seleziona database mysql_select_db($db_name, $db) or die("Errore nella selezione del database. Verificare i parametri nel file ./inc/config.php"); // costruzione query $query="SELECT * FROM pagamenti WHERE id_socio = '$id' ORDER BY data DESC"; // risultato query $risultato=mysql_query($query,$db); echo "<br><br> <table width='60%' align='center'> <tr><th colspan='5' align='left'>Pagamenti</th></tr> <tr> <th align='left'>id</th> <th align='left'>Data Versamento</th> <th align='left'>Causale</th> <th align='left'>Descrizione</th> <th align='left'>Importo</th> </tr> "; // Riga contenente i dati $totale=0; while($riga = mysql_fetch_array($risultato)){ $id_socio=$riga['id_socio']; $importo=$riga['importo']; $totale=$totale+$importo; echo " <tr> <td>".$riga['id_socio']."</td> <td>".$riga['data']."</td> <td>".$riga['causale']."</td> <td>".$riga['descrizione']."</td> <td>€". $riga['importo']."</td> </tr> "; } echo" <tr><td> </td></tr> <tr><td> </td></tr> <tr> <td colspan='5'><b>Totale Versato: € ".$totale.",00</b></td> </tr> </table><br></div>"; mysql_close($db); } ?>Avevo sbagliato a scrivere, ma come ti dicevo, non va mi si carica sempre a parte ciao