Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[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 &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;
&quot;http://www.w3.org/TR/html4/loose.dtd&quot;>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;>
<link rel=&quot;stylesheet&quot; href=&quot;images/emx_nav_left.css&quot; type=&quot;text/css&quot;>
</head>

<body>
    <form action=&quot;iframe.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;> 
        <table>
        <tr><td>cognome: </td><td><input type=&quot;text&quot; name=&quot;cognome&quot;></td></tr> 
        <tr><td>ruolo: </td><td><input type=&quot;text&quot; name=&quot;ruolo&quot;></td></tr>
        <tr><td>valore: </td><td><input type=&quot;text&quot; name=&quot;valore&quot;></td></tr> 
        <tr><td></td><td><input type=&quot;submit&quot; value=&quot;seleziona&quot;></td></tr>
        </table>
    </form> 
    <?php 
        $db_host 
= &quot;localhost&quot;; 
        
$db_user = &quot;root&quot;; 
        
$db_password = &quot;&quot;; 
        
$db_name = &quot;fantaprova&quot;; 

        
$DBconn mysql_connect($db_host$db_user$db_password
            or die(&
quot;Connessione non riuscita: &quot; . mysql_error()); 
        
mysql_select_db($db_name$DBconn
            or die (&
quot;Errore nella selezione del databaseVerificare i parametri impostati.&quot;);     
                 

        
$cognome=$_POST['cognome'];
        
$ruolo=$_POST['ruolo'];
        
$valore=$_POST['valore'];
        echo &
quot;hai selezionato $ruolo con prezzi a partire da $valore&quot;;
        
$query = &quot;SELECT FROM giocatori where ruolo='&quot;.$ruolo.&quot;'and cognome like'%&quot;.$cognome.&quot;%' and valore>$valore&quot;;
        
$res mysql_query($query);
        if (
$res){
            echo &
quot;<br><br>GIOCATORI<br><br>Trovati &quot;.mysql_num_rows($res).&quotrecord&quot;;
        }
    
       if (!
$res) {
         echo &
quot;Errore nella query richiesta.\n&quot;;
         exit;
       } 
    
    
     
?>  
    <div class=&quot;iframe&quot;>
    <table><tr><td width=&quot;160&quot;><b>Cognome</b></td><td width=&quot;160&quot;><b>Ruolo</b></td><td><b>Valore</b></td></tr>
    <?
            while ($row = mysql_fetch_array($res)) {
                printf (&quot;<tr>&quot;);
                printf (&quot;<td>%s</td><td>%s</td><td>%s</td>&quot;, $row[0], $row[1], $row[2]);
                printf (&quot;<tr>&quot;);
            }  
        ?></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

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate