Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 48

Discussione: [ajax] Aggiornamento pagina

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito [ajax] Aggiornamento pagina

    Devo scrivere uno script AJAX che mi permetta di includere in un div della pagina corrente il contenuto presente in un file php...mi date qualche dritta?

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    un esempio di script ajax , è anche possibile includere variabili di invio, in questo esempio variabili url e title. La variabile file_php è il file.php di invio.

    Codice HTML:
    <script type="text/javascript"> 
    
    function chiama_ajax_html(file_php,url,title) {
    
    var res = $.ajax({
       type: "POST",
       url: file_php,	   
       data: "url="+encodeURIComponent(url)+"&title="+encodeURIComponent(title),
    	 async: false	  
     }).responseText;
     
     return res;
     
     } 
    
    //x richiamare la funzione ajax:
    var risposta=chiama_ajax_html('esempio.php','http://esempio.it','Esempio');
    
    
    
    </script>
    utilizzerai la variabile risposta per riempire il div....:

    Codice HTML:
    <script type="text/javascript"> 
    
    $(document).ready(function(){
    
    $('#id_del_div').html(risposta);
    
    });
    
    </script>
    Ultima modifica di EuroSalute : 20-04-2012 alle ore 18.28.12 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    Nota che gli script sopra dipendono da 35KB di libreria jQuery, o simile. Se vuoi farne a meno, esistono librerie più leggere, addirittura puoi farlo con una singola funzione.

  4. #4
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Si, grazie ma cercavo qualcosa di indipendente da altre librerie...una semplice funzione insomma

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    Guarda questa ad esempio: XMLHttpRequest functions

  6. #6
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Non essendo esperto di Javascript non mi è chiarissimo come si utilizza, mi faresti un esempio? Grazie mille!

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    C'è scritto nella pagina, dopo il codice.

  8. #8
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ci sono tre aree di codice...dove includo ciascuna?

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    Hai letto il testo fra le aree di codice, le istruzioni ?!

  10. #10
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Si, ma non c'è scritto dove inserirle...

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    Uhm, in un tag <script type="text/javascript"> ... </script>, la dove vuoi che vengano eseguite.

    Codice HTML:
    <div id="contenitore"></div>
    
    <script type="text/javascript">
    /* la definizione della funzione qua */
    
    /* chiamata della funzione */
    sendRequest('pagina.php', handleRequest);
    
    /* quando arriva il risultato... */
    function handleRequest(req) {
    	var writeroot = document.getElementById('contenitore');
    	writeroot.innerHTML = req.responseText;
    }
    </script>
    Se la funzione ti serve in più file, puoi metterla in un file .js a parte ed includerla nell'head delle pagine.
    Ultima modifica di dreadnaut : 21-04-2012 alle ore 13.39.00

  12. #12
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Allora...ho incluso la definizione della funzione tramite un file .js esterno.
    La chiamata della funzione la devo mettere ad esempio sulla proprietà onclick di un elemento html?

  13. #13
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,261

    Predefinito

    Se vuoi che avvenga al click, si.

  14. #14
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    ma cosa sono i due parametri della sendRequest?
    Il primo è il file da includere? E il secondo?

  15. #15
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    No, il primo non è il file da includere, è solo l'indirizzo (URL) a cui effettuare la richiesta, la cui risposta verrà data in pasto alla funzione che hai specificato nel secondo parametro, che potrà eventualmente modificare l'albero del documento inserendo la porzione di documento appena ottenuta.

  16. #16
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Mi faresti dunque un esempio di come effettuare la chiamata?

  17. #17
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Il codice che ha proposto Dreadnaut è praticamente già pronto, qual'è il problema?

  18. #18
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Il problema è intanto...posso anche lasciare pagina.php ma che contenuto deve avere questo file?

  19. #19
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    File? Che file? E cosa ci sarebbe in questa pagina.php? Scusa, ma non so come stai strutturando il tutto.

  20. #20
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    pagina.php abbiamo detto che è il primo parametro della funzione, cioè l'indirizzo a cui effettuare la richiesta. Dentro a pagina.php però cosa deve esserci?

  21. #21
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Il file puoi chiamarlo come vuoi, quello è solo un nome di esempio. Ci devi piazzare ciò che deve venire inserito nella pagina, non deve essere quindi un documento HTML completo, ma una sola porzione. È esattamente come hai scritto tu nel primo messaggio: viene incluso nel div ciò che genera come risposta lo script PHP.

  22. #22
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ah ma io ho scritto "il primo è il file da includere?" e tu mi hai risposto "no"
    Comunque...non devo specificare anche in che punto della pagina includermelo?

  23. #23
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    La funzione sendRequest non lo include, effettua solo la richiesta, è la funzione specificata nel secondo parametro che si occupa di questo. Di per sé sendRequest non modifica l'albero del documento.
    La porzione di documento così ottenuta viene inserita come contenuto dell'elemento avente come id contenitore, sovrascrivendo qualsiasi altra cosa ci fosse in precedenza.

  24. #24
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ok perfetto quindi devo avere un div nella pagina da cui effettuo la chiamata che abbia come id "contenitore"?

  25. #25
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Esattamente.

  26. #26
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Tutto funzionante, grazie a entrambi! :)

    ----------------

    Altro dubbio...se volessi trasformare l'id "contenitore" in un parametro da passare ogni volta che richiamo la funzione come dovrei modificare il codice?
    Ultima modifica di andreafallico : 22-04-2012 alle ore 16.13.56

  27. #27
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Puoi usare una cosa come:
    Codice:
    function load(URL, element){
    	sendRequest(URL, handleRequest);
    	function handleRequest(req){
    		element.innerHTML = req.responseText;
    	}
    }
    oppure
    Codice:
    function load(URL, elementId){
    	sendRequest(URL, handleRequest);
    	function handleRequest(req){
    		document.getElementById(elementId).innerHTML = req.responseText;
    	}
    }
    A seconda dell'esigenza. Alla prima devi fornire URL e oggetto rappresentante l'elemento in cui inserire la risposta del server, nella seconda funzione invece il secondo parametro è una stringa rappresentante l'id dell'elemento.

  28. #28
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    cioe' definisco una funzione dentro ad un'altra funzione?
    Ci sarebbe un alternativa?

  29. #29
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Perché? Qual'è il problema?

  30. #30
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Non mi piace l'idea di inserire la definizione di una funzione all'interno della definizione di un'altra funzione...

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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