[risultato script in iframe]come? Clicca QUI per vedere il messaggio nel forum |
maynard80 |
ciao ragazzi, sto imparando piano piano a usare php e mySQL, ho capito come si fa una form che manda le variabili tramite metodo post e come si fanno ad utilizzare tali variabili attraverso la variabile $_POST nella pagina definita nell'action della form.
vorrei però visualizzare i dati della mia query all'interno di una iframe senza cambiare pagina, è possibile?
diciamo che ho una tabella giocatori con 3 campi (cognome,ruolo,quotazione)e voglio poter scegliere un giocatore in base al ruolo e alla sua quotazione e visualizzare il risultato nella iframe sottostante.
Se poi fosse possibile vorrei poter selezionare 1 o + giocatori visualizzati e utilizzarli per una seconda query al database. |
Napolux |
Originally posted by maynard80
vorrei però visualizzare i dati della mia query all'interno di una iframe senza cambiare pagina, è possibile?
Mmmh certo che e' possibile....
Allora fai cosi':
Nella form metti nel parametro action="" la stessa pagina in cui c'e' il form...
Poi nel punto della pagina dove vuoi l'iframe crea una DIV che usi questa classe CSS (trucco fighissimo per non usare gli iframe (difficili e non sempre compatibili) veri preso qui: http://www.constile.org/tips/emulare_gli_iframe/ )
.iframe {
width: 250px; // o le misure che vanno bene per te
height: 250px;
overflow: auto;
padding: 5px;
}
all'interno della div metti qualcosa del tipo:
PHP:
if isset($_POST["una var del form"])
{
// FAI QUERY
// STAMPA RISULTATO QUERY
}
Cosi' l'iframe fasullo verra' riempito solo se ci sono dati inviati dal form
Se invece vuoi che il finto iframe compaia solo se e' stato inviato il modulo allora metti il tag <div class="iframe"> subito all'inizio dell'IF e il tag </div> alla fine dell'if prima della graffa.
Per la seconda domanda che fai dovresti creare sempre all'interno della div un form con un flag per ogni calciatore che stampi...
Se hai dubbi chiedi pure. |
maynard80 |
dunque, ho fatto come dici, ma sono molto imbranato
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="images/emx_nav_left.css" type="text/css">
</head>
<body>
<form action="iframe.php" method="post" enctype="multipart/form-data">
<table>
<tr><td>cognome: </td><td><input type="text" name="cognome"></td></tr>
<tr><td>ruolo: </td><td><input type="text" name="ruolo"></td></tr>
<tr><td>valore: </td><td><input type="text" name="valore"></td></tr>
<tr><td></td><td><input type="submit" value="seleziona"></td></tr>
</table>
</form>
<?php
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "fantaprova";
$DBconn = mysql_connect($db_host, $db_user, $db_password)
or die("Connessione non riuscita: " . mysql_error());
mysql_select_db($db_name, $DBconn)
or die ("Errore nella selezione del database. Verificare i parametri impostati.");
$cognome=$_POST['cognome'];
$ruolo=$_POST['ruolo'];
$valore=$_POST['valore'];
echo "hai selezionato $ruolo con prezzi a partire da $valore";
$query = "SELECT * FROM giocatori where ruolo='".$ruolo."'and cognome like'%".$cognome."%' and valore>$valore";
$res = mysql_query($query);
if ($res){
echo "<br><br>GIOCATORI<br><br>Trovati ".mysql_num_rows($res)." record";
}
if (!$res) {
echo "Errore nella query richiesta.\n";
exit;
}
?>
<div class="iframe">
<table><tr><td width="160"><b>Cognome</b></td><td width="160"><b>Ruolo</b></td><td><b>Valore</b></td></tr>
<?
while ($row = mysql_fetch_array($res)) {
printf ("<tr>");
printf ("<td>%s</td><td>%s</td><td>%s</td>", $row[0], $row[1], $row[2]);
printf ("<tr>");
}
?></table></div>
</body>
</html>
ma come si fa a far si che l'iframe abbia la scroll bar laterale? così fa schifo poichè quando visione molte tuple si allunga! |
Napolux |
La classe CSS dovrebbe fare lo scrolling automaticamente, leggi il link al sito che ti ho dato...
A me non a mai dato problemi con codice PHP da stampare mette la barra quando diventa troppo lungo sia su IE che su Firefox....
Mah... |
maynard80 |
allora ho sbagliato io qualcosa, perchè a me non mette nessuna barra...
tra l'altro la stringa PHP:
if isset($_POST('nomevariabile'))
mi da errore |
maynard80 |
la classe è uguale alla tua:
code:
.iframe {
color:#000066;
background-color:#999999;
width: 500px; // o le misure che vanno bene per te
height: 500px;
overflow:auto;
padding: 5px;
border-style:solid;
border:1px;
border-color:#666666;
}
|
Napolux |
Boh...
Il manuale parla chiaro...
Che errore ti da'? |
maynard80 |
non da nessu errore, semplicemente non parte lo scroll e l'"iframe" si allunga a dismisura tanto quante sono le righe da rappresentare. |
DeepBlue |
Originally posted by maynard80
if isset($_POST('nomevariabile'))
mi da errore
Sbagli la sintassi: usa $_POST['nome_variabile'] (se hai php > 4.1.0) |
DeepBlue |
Originally posted by maynard80
.iframe {
border-style:solid;
border:1px;
border-color:#666666;
}
brrr....
usa una regola sola per definire tutta quella roba:
border: 1px solid #666666; |
ripe |
Off-Topic: Che sintassi da nerd, quella del Php... :D |
maynard80 |
grazie, cmq non risolve il mio problema.. va beh per ora rinuncio |
|
|
|