Visualizzazione risultati 1 fino 12 di 12

Discussione: inviare variabile e aprire pagina con un link

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito inviare variabile e aprire pagina con un link

    Ho preparato il modulo per le ricerche per il mio progetto
    (per il momento mi sto limitando a fare un semplice elenco dei documenti inseriti nel db in ordine di data)

    visualizzo l'elenco così:

    Codice PHP:
    include("dati.php");
    $link=mysql_connect("$db_host","$db_login","$db_pass")
    or die (
    "Non riesco a connettermi a <b>$db_host");

    mysql_select_db ($database, $link)
    or die (
    "Non riesco a selezionare il db $database<br>");

    if ((
    $_REQUEST['clie']=="")&&($_REQUEST['firstinput']=="")&&($_REQUEST['secondinput']==""))
    {
    $tutto = "SELECT * FROM fatture ORDER BY data";
    }

    $query = mysql_query ($tutto,$link)
    or die (
    "Non riesco ad eseguire la richiesta $tutto");
    $totr=mysql_num_rows($query);
    echo
    "<b>Numero fatture trovate: <font color=\"#FF0000\" size=\"5\"> ".$totr." </font></b> <a href=\"ricerca.html\">Ritorna al modulo</a><br><br>

    <table border=1 width=\"600\" cellspacing=\"0\" cellpadding=\"5\"><tr>
    <td width='80' align='center'><b>Fattura N°</b></td>
    <td width='150' align='center'><b>Data</b></td>
    <td width='250' align='center'><b>Cliente</b></td>
    <td width='120'align='center'><b>Dettagli</b></td></tr></table><br>"
    ;

    while(
    $row = mysql_fetch_array($query) )
    {
    $cust = $row["id_fattura"];

    $querycust = mysql_query("SELECT * FROM clientidb JOIN fatture ON clientidb.id_user=fatture.id_cliente
    WHERE fatture.id_fattura =
    $cust",$link);

    while(
    $rowcust = mysql_fetch_array($querycust) )
    {
    $cognome_cliente = $rowcust["cognome"];
    $nome_cliente = $rowcust["nome"];
    }

    echo
    "
    <table border=0 width=\"600\" cellspacing=\"3\"><tr>
    <td width='80' align='right'><b>
    $row[numero_fatt]</b></td>
    <td width='150' align='center'><b>"
    .date("d/m/y", $row['data'])."</b></td>
    <td width='125' align='left'><b>&nbsp;
    $cognome_cliente</b></td>
    <td width='125' align='left'><b>&nbsp;
    $nome_cliente</b></td>
    <td width='120'align='center'><b><a href=\"script_ricerca.php?variabile=
    $cust\">Visualizza</a></b></td>
    </tr>
    </table>"
    ;
    }
    ?>
    Come potete vedere l'ultima voce è un link che dovrebbe inviare l'id fattura alla pagina script_ricerca.php
    (che effettivamente avviene).
    Il problema è che questo link dovrebbe oltre ad inviare la variabile, fare aprire contemporaneamente una pagina html con inserito un filmato flash che dovrebbe riportare la fattura completa con tutti i dati
    (il filmato flash richiama e stampa a sua volta i dati della pagina script_ricerca.php).

    In pratica ho usato lo stesso metodo oggetto di una delle mie discussioni precedenti, se qualcuno di voi ricorda.
    La differenza consiste nel fatto che in quel caso aprivo direttamente con il bottone (o link) il filmato flash che
    andava a leggere uno script php che richiamava i dati dal db (l'ultimo inserimento che avevo fatto nel database) e avevo risolto il problema.
    Ora la cosa è più complessa visto che devo inviare la variabile relativa a un link della lista e poi far aprire il filmato flash che stampa la fattura.
    Come posso fare?
    grazie

  2. #2
    Guest

    Predefinito

    Ma scusa il link 'visualizza' non dovrebbe già fare ciò che chiedi? Altrimenti, cosa fa?
    Potresti mettere un secondo link... ma non ho capito cosa ti serve! (cioè ad esempio, se dovessi mettere un altro link dedicato, che parametro gli affideresti?)


    Ciaooooo!!!!!

  3. #3
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da debug
    Ma scusa il link 'visualizza' non dovrebbe già fare ciò che chiedi? Altrimenti, cosa fa?
    Potresti mettere un secondo link... ma non ho capito cosa ti serve! (cioè ad esempio, se dovessi mettere un altro link dedicato, che parametro gli affideresti?)


    Ciaooooo!!!!!
    Scusa è colpa mia; non sono stato tanto chiaro.
    Il fatto è che ho dato per scontato che tu ti ricordassi dell'argomento
    (se non mi sbaglio hai partecipato anche tu a una mia discussione su flash e php).
    Ok, vediamo di ordinare le cose.


    Devo, in poche parole, cliccando sul link:
    inviare la variabile.. <a href=\"script_ricerca.php?variabile=$cust\">Visual izza</a>..
    ad uno script php.
    Questo script è letto da un filmato flash secondo le modalità che abbiamo già trattato una volta credo e che ho
    preso da questo articolo:
    http://www.liviogiordano.it/showarticle.php?id=1

    Il problema è che adesso vorrei (cliccando sul link Visualizza di cui sopra) inviare la variabile che contiene l'id della fattura selezionata nell'elenco allo script.php (che non deve aprirsi..non serve) e in più far aprire la pagina con il filmato flash che visualizza i dati della fattura. Il filmato flash legge tramite codice actionscript il codice php della pagina script_ricerca.php che interroga il db in base alla varibile ricevuta.

    Ecco perchè mi serve inviare prima la variabile e poi far aprire la pagina con il filmato.
    Mi sono venuto a trovare in una situazione simile in una delle mie discussioni precedenti (ricordi il problema della varibile che si perdeva per effetto dell'aggiornamento della pagina?).

    Avevo risolto il problema (veramente eludendolo più che altro) facendo aprire una pagina di popup (direttamente cliccando su un button) che conteneva il filmato flash (che anche in questo caso richiamava lo script.php); solo che lo script in questione interrogava il db senza ricevere nessuna variabile ma semplicemente richiamando i dati dell'ultima fattura inserita cronologicamente nel database.

    Adesso mi trovo "costretto" ad affrontare il problema di inviare la variabile e far aprire il filmato flash
    visto che il documento da visualizzare questa volta non è per forza l'ultimo inserito nel DB.

    Spero di essere stato chiaro

    Grazie ancora

  4. #4
    Guest

    Predefinito

    Non ricordo l'altra discussione, e spero di aver capito la situazione.

    Allora, le modifiche che dovrai apportare sono più di una; anzitutto, devi modificare il filmato flash, devi implementare in esso un controllo (una semplice IF) controllando che non sia presente una particolare variabile (o che non sia settata): in caso sia settata e che contenga un valore, allora deve caricare lo script php passandogli il valore della variabile d cui parliamo, lo script in questo caso "capirà" che dovrà andare a pescare nel DB uno specifico record; in caso la variabile non sia settata o sia vuota, flash richiamerà sempre il solito script, ma, non ricevendo quest'ultimo la variabile in oggetto, estrarrà l'ultimo record inserito (come già avviene).

    Va da sè che il link che citi nel primo post dovrà richiamare il filmato flash e passargli quell'ID, in modo che il swf si comporti come descritto poco fa.


    Ciaooooo!!!!!!

  5. #5
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da debug
    Non ricordo l'altra discussione, e spero di aver capito la situazione.

    Allora, le modifiche che dovrai apportare sono più di una; anzitutto, devi modificare il filmato flash, devi implementare in esso un controllo (una semplice IF) controllando che non sia presente una particolare variabile (o che non sia settata): in caso sia settata e che contenga un valore, allora deve caricare lo script php passandogli il valore della variabile d cui parliamo, lo script in questo caso "capirà" che dovrà andare a pescare nel DB uno specifico record; in caso la variabile non sia settata o sia vuota, flash richiamerà sempre il solito script, ma, non ricevendo quest'ultimo la variabile in oggetto, estrarrà l'ultimo record inserito (come già avviene).

    Va da sè che il link che citi nel primo post dovrà richiamare il filmato flash e passargli quell'ID, in modo che il swf si comporti come descritto poco fa.


    Ciaooooo!!!!!!

    Non penso di aver capito.
    Precedentemente il filmato non passava nessuna variabile allo script php.
    Era quest'ultimo che la riceveva da un'altra pagina (anche se poi in un secondo momento ho modificato il codice facendogli richiamare solo l'ultimo record inserito allo script php)
    Il filmato non faceva altro che leggere lo script secondo lo schema della pagina del tutorial di cui sopra.

    Tu dici, quindi, che questa volta deve essere il filmato (o meglio l'actionscript)
    a inviare la variabile con l'id allo script php e poi proicedere.
    Ma come?
    Intendevi questo?
    Grazie

  6. #6
    Guest

    Predefinito

    Esattamente, intendevo proprio questo.
    Infatti ho scritto che dovevi modificare un po' tutto, anche il filmato.

    Per il come, tu come richiami lo script dal filmato?
    In ogni caso ti consiglio di usare la classe LoadVars che è la più completa e più sicura.
    Trovi molte info facendo piccole ricerche in rete.


    Ciaoooo!!!

  7. #7
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da debug
    Esattamente, intendevo proprio questo.
    Infatti ho scritto che dovevi modificare un po' tutto, anche il filmato.

    Per il come, tu come richiami lo script dal filmato?
    In ogni caso ti consiglio di usare la classe LoadVars che è la più completa e più sicura.
    Trovi molte info facendo piccole ricerche in rete.


    Ciaoooo!!!
    Ricapitoliamo.
    Il fatto è che il sistema usato da me precedentemente non prevedeva l'invio
    di nessuna variabile. Il filmato flash richiamava i dati dello script php
    che non faceva altro che richiamare a sua volta dal db l'ultimo record inserito nella tabella. Io aprivo in questo caso con il link direttamente la pagina html con il filmato flash incorporato e il gioco era fatto.

    Adesso mi trovo in difficoltà in quanto
    il link visualizza di cui sopra dovrebbe inviare la variabile direttamente al filmato e non so come si fa (il link quindi non deve aprire e visualizzare nessuna pagina php;
    ma la pagina che contiene il filmato flash.
    Poi il filmato una volta ricevuta la variabile dovrebbe inviarla allo script php che interroga il database e riceve i dati, e solo a questo punto posso procedere come ho fatto precedentemente richiamando i dati della query nel filmato flash che a questo punto dovrebbe visualizzare il documento completo con i dati ; magari devo inserire dei controlli come dici tiu per verificare se è stata ricevuta la variabile, poi inviata e per ultimo un IF per eseguire il resto del codice che visualizza i dati, una cosa del genere in actionscript:

    ......
    loader = new loadVars();
    loader.load("script.php");
    loader.onLoad = function(success) {
    if(success)
    {
    _root.num.htmlText = eval("this.num");
    _root.ann.htmlText = eval("this.ann");
    _root.anno.htmlText = eval("this.anno");
    _root.cliente.htmlText = eval("this.cliente");
    _root.asp.htmlText = eval("this.asp");

    if(this.ok)
    {
    _root.codice.htmlText = "";
    _root.descrizione.htmlText = "";
    _root.quan.htmlText = "";
    _root.iva.htmlText = "";
    _root.prezzo_u.htmlText = "";
    _root.imponibile.htmlText = "";

    for(var j = 1; j <= this.i; j++)
    {
    _root.codice.htmlText += eval("this.codice" + .
    ...
    ecc ecc
    Non so se sono stato chiaro.
    Il nodo principale della questione sta nel fatto che il link visualizza dovrebbe solo aprire la pagina con il filmato e niente altro. Ma non so districarmi in queste cose., conosco poco flash.
    Grazie

  8. #8
    Guest

    Predefinito

    Potresti far puntare il link Visualizza ad una pagina php che conterrà il codice per visualizzare il filmato, che verrà richiamato, quest'ultimo, passandogli la variabile in questione:

    filmato.swf?pippo=testo1

    in questo modo all'interno del filmato avrai a disposizione la variabile nella _root (in questo caso _root.pippo conterrà "testo1").

    Per quanto riguarda il passare una var da flash a php potresti banalmente usare questa forma:

    loader.load("script.php?var=valore");

    anche se non è la più elegante (colpa anche della mia prolungata assenza dal mondo Flash di questi anni!)


    Ciaooooo!!!!!!!

  9. #9
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da debug
    Potresti far puntare il link Visualizza ad una pagina php che conterrà il codice per visualizzare il filmato, che verrà richiamato, quest'ultimo, passandogli la variabile in questione:

    filmato.swf?pippo=testo1
    Non mi convince tanto questa cosa.

    Devo mettermi sotto e provare comunque.

    Avevo pensato anche ad un altro metodo.

    Se invece del link visualizza inserissi un bottone di un form con l'action del form indirizzato alla pagina php che riceve la variabile e poi una cosa del genere per aprire in pop il filmato: onclick=\"javascript:Popup('movie.html')\"

    che leggerebbe lo stesso script?

    Penso che ci sarebbero 2 problemi.
    Il primo riguarda anche l'apertura della pagina php nel browser che vorrei evitare (ci sono gli echo per forza).
    il secondo riguarda l'efficacia tecnica della cosa: invio la variabile allo script
    che deve essere letto subito dopo dal filmato e in questo caso forse a causa dell'aggiornamento la varibile può essere persa.
    Che ne pensi?
    Grazie ancora

  10. #10
    Guest

    Predefinito

    Non ho capito molto della soluzione che hai avanzato, ma mi sembra sia più o meno ciò che ho detto io, se non più complicato.
    Poi non ho capito il discorso degli echo che non vuoi mettere...

    Io farei come ho suggerito precedentemente, mi pare la soluzione più "ovvia".


    Ciaooo!!!

  11. #11
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da debug
    Non ho capito molto della soluzione che hai avanzato, ma mi sembra sia più o meno ciò che ho detto io, se non più complicato.
    Poi non ho capito il discorso degli echo che non vuoi mettere...

    Io farei come ho suggerito precedentemente, mi pare la soluzione più "ovvia".


    Ciaooo!!!
    Forse ci siamo quasi (anche se rimangono un paio di problemi)
    Meglio iniziare da capo:

    Invio la variabile con il link "visualizza":

    <td width='120'align='center'><b><a href=\"filmato.php?variabile=$cust\">Visualizza</a></b></td>

    Il codice della pagina filmato è questo:

    Codice:
    <?
    $variabile_ric=$_REQUEST['variabile'];
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>movie_ric</title>
    </head>
    <body bgcolor="#ffffff">
    <!--url's used in the movie-->
    <!--text used in the movie-->
    <!--
     
    -->
    <!-- saved from url=(0013)about:internet -->
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="558" height="806" id="movie_ric" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="movie_ric.swf" /><param name="FlashVars" value="<? echo "&id=".$variabile_ric; ?>" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="movie_ric.swf" flashvars="<? echo "&id=".$variabile_ric; ?>" quality="high" bgcolor="#ffffff" width="558" height="806" name="movie_ric" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
    </body>
    </html>
    Nell'actionscript del filmato ho aggiunto questo codice all'inizio:

    Codice:
    function sendDatauno(){
    	nome=new LoadVars();
    	nome.id = _root.id;
    	nome.send("script_ricerca.php","POST");	
    	}
        sendDatauno();
    Sembra che flash riceva la varibile e la invii alla pagina script_ricerca.php.
    C'è un problema però.
    Invio la variabile con il link visualizza si apre il filmato flash per una frazione di secondo e poi
    subito dopo visualizzo la pagina script_ricerca.php. Da un lato so di certo che la variabile id è stata spedita (ci sono degli echo nello script), dall'altro il problema consiste nel fatto che lo script non deve essere visualizzato nel browser.
    Come faccio?

    In pratica il filmato una volta ricevuta la variabile, la invia alla pagina script_ricerca.php che interroga il db in base alla varibile. Una volta che il db è stato consultato lo stesso filmato (che non dovrebbe mai scomparire dal browser) dovrebbe visualizzare i dati completi del documento richiamati dallo script stesso (ovvio che non ho inserito ancora il codice actionscript che chiama i dati completi dallo script, ma devo prima risolvere il problema dell'apertura della pagina di ricerca nel browser).
    Dove sbaglio?
    Graziefunction sendDatauno(){
    nome=new LoadVars();
    nome.id = _root.id;
    nome.send("script_ricerca.php","_parent","POST");
    }
    sendDatauno();
    Ultima modifica di gianlucaweb : 18-03-2007 alle ore 18.47.36

  12. #12
    Guest

    Predefinito

    Hai già consultato la guida in linea di Flash?
    Io, come già detto, sono anni ch non lo apro, e sono molto arruginito!!!
    Fammi sapere se trovi qualcosa nella guida, altrimenti posso indirizzarti su siti specializzati.


    Ciaoo!!!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •