Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12

    Aprire risultato di una Query in un frame

    Buonasera, sono sicuro potrete aiutarmi, vista la poca dimestichezza che ho con i Frame. Il mio scopo è di utilizzare un form di ricerca che vada ad eseguire una query, e stampi il risultato nel frame sottostante i campi di ricerca. Attualmente mi interessi che stampi la semplice stringa di codice della query, giusto per vedere se funziona. Ho fatto cosi:
    Ho un file ricercastrumentosemplice.php che è composto cosi:
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//IT" "http://www.w3.org/TR/html4/frameset.dtd"
    <
    html>
    <
    head>
     <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     <
    title>Ricerca</title>
    </
    head>
     
     <
    frameset rows="40%,*">
         <
    frame name="ricerca" id="ricerca" src="Cercastrumento/formricercasemplice.php">
    <
    frameset cols="100%,*">
              <
    frame name="risultati" id="risultati" src="risultati.php">
      </
    frameset>
    </
    html


    Poi il file formricercasemplice.php è composto cosi:

    Codice PHP:
    <form name="tabella"target ="risultati" action="" method="POST">     
    <table width="80%" border="0">
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
     
         <thead>
     
            <tr>
                <td>Matricola</b></td>
                <td><input type="text" name="matricola"></td>
                <td>Stato</b></td>
                <td><input type="text" name="stato"></td>
            </tr>
            <tr>
                <td>S/N</b></font></td>
                <td><input type="text" name="sn"></td>
            </tr>
         </thead>
         </table>
         <input type="submit" name="search" value="Cerca">
            <?php
                
    if (isset($_POST['search'])){
                    
    //Recupero i valori
                    
    $campo1 $_POST['matricola'];
                    
    $campo2 $_POST['stato'];
                    
    $campoN $_POST['sn'];
                    
                    
    //concateno le query per estrarre la query completa
                    
    $sql 'SELECT * FROM eltfinal.strumenti WHERE 1=1';
                    
    $sql .= RecuperaFiltro($campo1,'matricola'); 
                    
    $sql .= RecuperaFiltro($campo2,'stato'); 
                    
    $sql .= RecuperaFiltro($campoN,'sn'); 
                    
    $sql .= ";";
                    
    $querymysql_query ($sql,$connessione);
                    
    //stampo la query per capire dove verrà stampata, se nella pagina corrente o nel frame che mi interessa
                    
    echo $sql;
                    
    //inserisco la query in un array
                    
    $array mysql_fetch_array($query);
                    echo 
    $array['matricola'];
                    if (!
    $query)
                    {
                    print 
    "NO";   
                    }
                    else
                    {
                    print 
    "SI";
                    }
                    
    //echo '</form>';
                
    }
                else 
                    echo 
    'non hai premuto il tasto';
            
    ?>
        </form>
        </body> </html>
    Grazie mille!!!!

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Non penso che sia possibile, se non tramite un accroccio di refresh frame passando i valori contenuti nella tua form.

    Ciò che tu vuoi fare può essere fatto tramite un'unica pagina, in modo sincrono o modo asincrono.
    Il modo sincrono, presumo che tu lo conosca, è il POST dei dati sulla stessa pagina.

    Il metodo asincrono è utilizzato chiamate ajax, ovvero tramite js.
    A tal proposito ti consiglio JQUERY
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Quote Originariamente inviata da Fractals87 Visualizza il messaggio
    Non penso che sia possibile, se non tramite un accroccio di refresh frame passando i valori contenuti nella tua form.

    Ciò che tu vuoi fare può essere fatto tramite un'unica pagina, in modo sincrono o modo asincrono.
    Il modo sincrono, presumo che tu lo conosca, è il POST dei dati sulla stessa pagina.

    Il metodo asincrono è utilizzato chiamate ajax, ovvero tramite js.
    A tal proposito ti consiglio JQUERY
    Grazie Fractals87, purtroppo ancora non conosco il framework JQWERY, dovrei iniziare a studiarlo.

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    quarda è molto semplice :
    ti do giusto due info per iniziare

    http://jquery.com/download/

    scarica la libreria, è un file js.

    questa poi la includi nella tua pagina web.

    crei un semplice bottone :

    <input type="button" onclick="call_ajax()" value="test">

    poi includi questa funzione ajax

    codice:
    function call_ajax(){
                    $.ajax({
                        type: "POST",
                        url: "tua_pagina .php",
                        dataType: "html",
                        data: "dato1=" + $("#dato1").val() + "&dato2=" + $("dato2").val(),
                        async: true,
                        cache: false, 
                        timeout:30000,
                        success: function(html){
                                  alert(html);
                        }
                    });
    }
    allora, nel campo url ci metti la tua pagina che stampa il risultato.
    questo :
    data: "dato1=" + $("#dato1").val() + "&dato2=" + $("dato2").val(),

    server per comporre il $_POST, in sostanza gli dico di passare alla pagina indicata nell'url il dato $_POST['dato1'], recuperandolo dalla input chiamata dato1 (in questo modo $("#dato1").val() )
    Che mestiere difficile.....essere da soli ancora di più

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Quote Originariamente inviata da Fractals87 Visualizza il messaggio
    quarda è molto semplice :
    ti do giusto due info per iniziare

    http://jquery.com/download/

    scarica la libreria, è un file js.

    questa poi la includi nella tua pagina web.

    crei un semplice bottone :

    <input type="button" onclick="call_ajax()" value="test">

    poi includi questa funzione ajax

    codice:
    function call_ajax(){
                    $.ajax({
                        type: "POST",
                        url: "tua_pagina .php",
                        dataType: "html",
                        data: "dato1=" + $("#dato1").val() + "&dato2=" + $("dato2").val(),
                        async: true,
                        cache: false, 
                        timeout:30000,
                        success: function(html){
                                  alert(html);
                        }
                    });
    }
    allora, nel campo url ci metti la tua pagina che stampa il risultato.
    questo :
    data: "dato1=" + $("#dato1").val() + "&dato2=" + $("dato2").val(),

    server per comporre il $_POST, in sostanza gli dico di passare alla pagina indicata nell'url il dato $_POST['dato1'], recuperandolo dalla input chiamata dato1 (in questo modo $("#dato1").val() )
    Grazie mille Fractals, ho fatto cosi, ma alla pressione del tasto Test non accade nulla, ho comesso sicuramente qualche errore. Il codice è questo:

    Codice PHP:
     <script language="javascript" type="text/javascript" src="C:/Bitnami/wampstack-5.4.30-0/scripts/JQuery/jquery-1.11.1.min.js">
     
    function call_ajax(){
                    $.ajax({
                        type: "POST",
                        url: "../risultati.php",
                        dataType: "html",
                        data: "dato1=" + $("#dato1").val() + "&dato2=" + $("dato2").val(),
                        async: true,
                        cache: false, 
                        timeout:30000,
                        success: function(html){
                                  alert(html);
                        }
                    });
    }
     
    </script>
    form name="tabella"target ="risultati" action="" method="POST">
         <table width="80%" border="0">
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
     
         <thead>
     
            <tr>
                <td>Matricola</b></td>
                <td><input type="text" name="matricola"></td>
                <td>Stato</b></td>
                <td><input type="text" name="stato"></td>
            </tr>
            <tr>
                <td>S/N</b></font></td>
                <td><input type="text" name="sn"></td>
            </tr>
         </thead>
         </table>
         <input type="button" name="search" onclick="call_ajax()" value="test">
            <?php
                
    if (isset($_POST['search'])){
                    
    //Recupero i valori
                    
    $campo1 $_POST['matricola'];
                    
    $campo2 $_POST['stato'];
                    
    $campoN $_POST['sn'];
                    
                    
    //concateno le query per estrarre la query completa
                    
    $sql 'SELECT * FROM eltfinal.strumenti WHERE 1=1';
                    
    $sql .= RecuperaFiltro($campo1,'matricola'); 
                    
    $sql .= RecuperaFiltro($campo2,'stato'); 
                    
    $sql .= RecuperaFiltro($campoN,'sn'); 
                    
    $sql .= ";";
                    
    $querymysql_query ($sql,$connessione);
                    
    //echo '<form target="risultati" action="">';
                    
    echo $sql;
                    
    //inserisco la query in un array
                    
    $array mysql_fetch_array($query);
                    echo 
    $array['matricola'];
                    if (!
    $query)
                    {
                    print 
    "NO";   
                    }
                    else
                    {
                    print 
    "SI";
                    }
                    
    //echo '</form>';
                
    }
                else 
                    echo 
    'non hai premuto il tasto';
            
    ?>
        </form>
        </body>
    </html>

  6. #6
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    No è concettualmente sbagliato :
    pagina1.php
    codice:
    <script language="javascript" type="text/javascript" src="C:/Bitnami/wampstack-5.4.30-0/scripts/JQuery/jquery-1.11.1.min.js">
     
    function call_ajax(){
        $.ajax({
            type: "POST",
            url: "pagina2.php",
            dataType: "html",
            data: "matricola=" + $("#matricola").val() + "&stato=" + $("stato").val() + "&sn=" + $("sn").val(),
            async: true,
            cache: false, 
            timeout:30000,
            success: function(html){
                alert(html);
            }
        });
    }
     
    </script>
    <form name="tabella"target ="risultati" action="" method="POST">
         <table width="80%" border="0">
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
         <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
     
         <thead>
     
            <tr>
                <td>Matricola</b></td>
                <td><input type="text" name="matricola"></td>
                <td>Stato</b></td>
                <td><input type="text" name="stato"></td>
            </tr>
            <tr>
                <td>S/N</b></font></td>
                <td><input type="text" name="sn"></td>
            </tr>
         </thead>
         </table>
         <input type="button" name="search" onclick="call_ajax()" value="test">
        </form>
    pagina2.php
    codice:
    <?php
                if (isset($_POST['search'])){
                    //Recupero i valori
                    $campo1 = $_POST['matricola'];
                    $campo2 = $_POST['stato'];
                    $campoN = $_POST['sn'];
                    
                    //concateno le query per estrarre la query completa
                    $sql = 'SELECT * FROM eltfinal.strumenti WHERE 1=1';
                    $sql .= RecuperaFiltro($campo1,'matricola'); 
                    $sql .= RecuperaFiltro($campo2,'stato'); 
                    $sql .= RecuperaFiltro($campoN,'sn'); 
                    $sql .= ";";
                    $query= mysql_query ($sql,$connessione);
                    //echo '<form target="risultati" action="">';
                    echo $sql;
                    //inserisco la query in un array
                    $array = mysql_fetch_array($query);
                    echo $array['matricola'];
                    if (!$query)
                    {
                    print "NO";   
                    }
                    else
                    {
                    print "SI";
                    }
                    //echo '</form>';
                }
                else 
                    echo 'non hai premuto il tasto';
            ?>
    Prova a dirmi cosa non capisci che ti spiego
    Che mestiere difficile.....essere da soli ancora di più

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Ciao Fractals, scusa il ritardo nel risponderti, ma con le ferie ho proprio messo da parte tutto ciò, e grazie per la tua risposta. Volevo chiederti ancora una mano, visto che non ho risolto. Ho copiato il codice sopra, però alla pressione del tasto Test, in sostanza viene riscritta la tabella anche nel frame sottostante. Ovvero, anziché stamparmi i risultati della query, mi si ristampa la tabella originale.
    Ho notato quindi che non vengono caricati i dati di "pagina2.php", ma viene ricaricata la tabella. Colpa forse dell'attributo "target" del form, che punta al frame "risultati"?
    Tra l'altro, ho cambiato l'input type = "submit", anziché "button", in quanto col button non ha effetto.
    Grazie della mano, gentilissimo
    Ultima modifica di Biju19; 28-08-2014 a 13:55

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.