Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Caricare PHP-Javascript-HTML in un div

    Salve a tutti,
    mi trovo di fronte ad un serio problema e non riesco a venirne fuori.

    Il sito che ho creato ha un'intestazione, un corpo centrale per il caricamento al volo delle pagine e un menù a piè pagina che l'utente usa per navigare.
    Nel corpo centrale (div) carico tutto, tranne una pagina con del javascript, dove, tra l'altro, c'è pure mootools.

    La pagina "incriminata" non è solo html e javascript, giusto per rendermi le cose ancora più difficili!
    C'è il php che legge le informazioni da un file xml e inserisce il risultato sia nella sezione javascript, che è inline alla pagina, quindi, non caricato da un file esterno (pensavo funzionasse meglio, invece...) sia all'html stesso. E' una specie di galleria, alla fine.

    Quindi, quello che voglio sapere è: come faccio a caricare una pagina del genere facendo in modo che il javascript venga eseguito normalmente?

    Grazie davvero e di cuore a chiunque darà degli utili indizi.

  2. #2
    allora, PHP e JS SONO DUE COSE DIVERSE che lavorano in due momenti diversi:

    PHP genera lato server l'html ed il JS, POI il JS viene eseguito lato client, dopo che il PHP ha finito.

    Per la tua domanda, ma tu hai provato e non funziona? se non funziona, che errore ti ritrovi?
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova quanto proposto in script / discussioni utili:
    eseguire istruzioni javascript presenti in contenuto caricato via ajax

    se usi gia' una libreria per caricare i contenuti potrebbero esservi metodi piu' diretti

    occhio che il javascript che carichi dinamicamente viene sempre eseguito a livello del documento chiamante, come se vi fosse sempre stato: se si generano conflitti li devi prevedere ed evitare

  4. #4
    Artorius e Xinod vi passo direttamente i link del sito cui sto lavorando per farvi un'idea più chiara:
    Questo è il sito
    Cliccando su PRODOTTI e poi su una delle voci nel menù a sinistra, vi restituisce un errore: pagina non trovata, giusto? Ok!
    Questo perchè gli href delle voci di sinistra sono semplici numeri che vengono gestiti dal javascript.
    Per quello che ho capito, la pagina caricata nel div centrale viene solo visualizzata, ma il javascript in esso contenuto non viene preso in considerazione. Questo per rispondere ad Artorius.

    Questa è la pagina prodotti che faccio caricare
    Come noterete, funziona perfettamente. Cliccate su una voce e appariranno scheda e immagini (sono in assolvenza e devo fare l'animazione d'attesa, perdonate i tempi).

    Attualmente sto caricando la pagina nel div tramite una chiamata di mootools che però non fa eseguire js.
    codice:
      	function loadPage(whatURL) {
    		var req = new Request.HTML({
    			method: 'post',
                url: whatURL,
                evalScripts:false,
                evalResponse:false,
    			onSuccess:function(responseTree, responseElements, responseHTML, responseJavaScript)
                {
                    $('contenitore').set('html',responseHTML);
                    eval(responseJavaScript);
                },
    			onFailure: function() {
    				$('contenitore').set('text', 'Richiesta fallita.');
    			}
    		}).send();
    Quindi sto valutando soluzioni alternative per risolvere il problema.

    @Xinod: cosa intendi con il javascript che carichi dinamicamente viene sempre eseguito a livello del documento chiamante? Devo caricare lo script della pagina dei prodotti già nella pagina principale? Ma funzionerà anche se la pagina ancora non esiste?

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    gia' usi mootools nella pagina principale,
    leggendo la documentazione riguardo il request dovresti notare:
    evalScripts - (boolean: defaults to false) If set to true, script tags inside the response will be evaluated.
    ciao

  6. #6
    Non funziona lo stesso!
    Ecco perchè sto vagliando altre soluzioni per caricare del javascript all'interno di un div.
    Ho letto in giro degli iframe: sapresti dirmi se possono essere utili e se quali le differenze con i div? Sono in grado di eseguire codice inline di una pagina html in essa caricata?

  7. #7
    Risolto: basta usare un iFrame per caricare la pagina e far eseguire il javascript inline.
    Come ho letto da qualche parte, l'iFrame non è altro che una finestra dentro un'altra finestra, QUINDI, tutto ciò in esso contenuto viene eseguito e visualizzato correttamente.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.