- Home
- Categorie
- Coding e Sistemistica
- PHP
- Tag select e database
-
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_soci
ORDER 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
-
Torniamo alla domanda di prima allora:
Ma il div centrale te lo carica tramite POST? O tramite GET?
-
Scusa, ma esiste un modo per inviare direttamente alla query il contenuto della select al cambiare della voce selezionata, anzichè inviare tramite post?
Per quanto riguarda il div centrale viene caricato da questo menù:
<?php if ($_SESSION['actived'] ==1){ if($_SESSION['stato'] > 3 && $_SESSION['stato'] < 7){ ?> <div id="menu_socio" class="style_linea"> <h5>Iscrizione Socio</h5> <ul> <li><a href="#" onclick="Richiesta('inserisci_socio.php')">Inserisci Socio</a></li> <li><a href="#" onclick="Richiesta('visualizza_socio.php')">Visualizza Socio</a></li> <li><a href="#" onclick="Richiesta('modifica_socio.php')">Modifica Socio</a></li> <li><a href="#" onclick="Richiesta('cancella_socio.php')">Cancella Socio</a></li> </ul> </div> <? }}?>
la funzione Richiesta() si trova in un file esterno .js:
function Richiesta(Stringa){ //Ritorna l'URL della pagima scelta nel menu if (Stringa.length > 0) { var url = Stringa; XMLHTTP = RicavaBrowser(CambioStato); XMLHTTP.open("GET", url, true); XMLHTTP.send(null); } else { document.getElementById("col-contenuti").innerHTML = "visualizza_rosaria.php"; } }
non è tutta farina del mio sacco, ma ho studiato come utilizzare tale funzione per inserila nelle mie pagine.
Ciao
-
errata corrige
document.getElementById("col-contenuti").innerHTML = "";
-
Ah. Ecco comanda il Js.
L'url della pagina che ti visualizza quel contenuto è sempre index.php, giusto? Non hai append data (index.php?qualcosa=qualcosaltro), giusto?
Scusa, ma esiste un modo per inviare direttamente alla query il contenuto della select al cambiare della voce selezionata, anzichè inviare tramite post?
Certo che si puo', ma non con PHP, ti servirà un Javascript o AJAX. Ma questa non è la sezione adatta se intendi farlo così.
-
1 giusto;
2 l'importante è risolvere il problema, con qualsiasi metodo, se poi non è possibile in questo mi puoi indicare dove posso trovare la soluzione?
Comunque grazie di tutto, sei stato molto gentile.