Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    13

    Ajax senza xmlHttpRequest

    Ciao a tutti. Vengo subito al mio problema. Allora ho creato una pagina web in html che invia una variabile ad un files php, poi questa viene elaborata e mi viene restituito il risultato direttamente sulla pagina html senza aprire la pagina php. Ovviamente ho utilizzato ajax, ma siccome i due files si trovano su domini diversi ho trovato e modificato questo script che funziona alla grande:
    Pagina html:
    codice:
    <script type="text/javascript">
    // Ottieni la base url
    url = document.location.href;
    xend = url.lastIndexOf("/") + 1;
    var base_url = url.substring(0, xend);
    
    function chiama_ajax(url) {
    //Inizia l'url con http?
    if (url.substring(0, 4) != 'http') {
    url = base_url + url;
    }
    // Crea un nuovo elemento JS
    var jsel = document.createElement('SCRIPT');
    jsel.type = 'text/javascript';
    jsel.src = url;
    //Appende l'elemento JS e quindi esegue la 'chiamata AJAX'
    document.body.appendChild (jsel);
    }
    
    setTimeout('leggodiv()',3000);
    function leggodiv() {
    element = document.getElementById ("contentdiv");
    string = element.innerHTML;
    alert (string)}
    
    </script> 
    <div id="contentdiv"> </div> <input type="button" onClick="chiama_ajax('http://www.paternopolionair.it/script.php?id=52852857')" value="Interroga PHP" />

    e questo il file php:
    Codice PHP:
    <?php 
    $testo 
    $_GET[id]; 
    ?> 
    div = document.getElementById('contentdiv'); 
    div.innerHTML = '<?php echo "il tuo ID: $testo"?>';
    Lo script l'ho semplificato perchè è molto più lungo....

    Allora, fin qui tutto OK. Tutto funziona alla perfezione e quando clicco sul pulsante Interroga PHP mi viene mostrato nel div della pagina html i contenuto generato da PHP. Ora il mio problema è questo: Siccome quello che mi viene generato dal php è una stringa simile a questa: "ID:082771|MU:2456|MU:566 " avrei bisogno che javascript prenda questa stringa, la divida e mi generi una tabella con i vari MU e nella prima riga l'id. Forse la seconda parte è più complicata e richiede un po di lavoro. Quello che mi interessa per ora è come prendere questa stringa ed importarla in una variabli javascript. Ho provato a modificare l'html in questo modo ma siccome lo script php impiega un po di tempo a generare la stringa l'alert che mi viene mostrato è vuoto.

    codice:
    <script type="text/javascript">
    // Ottieni la base url
    url = document.location.href;
    xend = url.lastIndexOf("/") + 1;
    var base_url = url.substring(0, xend);
    
    function chiama_ajax(url) {
    //Inizia l'url con http?
    if (url.substring(0, 4) != 'http') {
    url = base_url + url;
    }
    // Crea un nuovo elemento JS
    var jsel = document.createElement('SCRIPT');
    jsel.type = 'text/javascript';
    jsel.src = url;
    //Appende l'elemento JS e quindi esegue la 'chiamata AJAX'
    document.body.appendChild (jsel);
    }
    
    function leggodiv() {
    element = document.getElementById ("contentdiv");
    string = element.innerHTML;
    alert (string)}
    
    </script> 
    
    
    <div id="contentdiv"> </div> <input type="button" onClick="chiama_ajax('http://www.paternopolionair.it/script.php?id=52852857');leggodiv();" value="Interroga PHP" />
    Avete qalche idea su come importare questa stringa e magari come generare la tabella?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    ma siccome i due files si trovano su domini diversi Ho provato a modificare l'html in questo modo ma siccome lo script php impiega un po di tempo a generare la stringa l'alert che mi viene mostrato è vuoto. Ma secondo me e vuoto perché sono domini diversi dato che js e ajax non sono cross-domini meglio se metti una demo online da testare.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    13
    Ciao Andrea, no il fatto è che mi compare vuoto solo all'inizio, se poi clicco di nuovo il codice mi viene visualizzato. Siccome mi trovo su domini diversi ho appunto utilizzato questa sorta di script che non richiede xmlHttpRequest e come già ti ho detto funziona. Allora, questa è la pagina html: http://justrealspanky.altervista.org/form2.html e questo il file php: http://www.paternopolionair.it/script.php

    I sorgeti sono sopra. Spero avete capito il mio problema.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma... parli di chiamata ajax ma non mi sembra ci sia nessuna chiamata ajax inizialmente html e cosi:
    <html><body><div id="contentdiv"> </div> <input type="button" value="Interroga PHP" onclick="chiama_ajax('http://www.paternopolionair.it/script.php?id=ID52852857|MU452');leggodiv();">
    </body></html>
    ai già l'id invece di inserirlo nella chiamata mettilo direttamente nel div.
    Se non puoi farlo devi capire (non saprei come) quando chiama_ajax abbia realmente finito, non è temporizzando ipoteticamente la seconda funzione leggodiv che risolverai il problema.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    13
    Ok..allora lo script php l'ho semplificato e non mi genera un semplice id ma inserisce nuovi parametri. ora siccome io ho bisogno che quello che viene generato da php venga inserito in una variabile js e non ho la necessità di vi$ualizzarla nel div, c'e un modo per farlo sfruttando sempre questo script? Oppure quale altra soluzione potrei usare? mi trovo su domini diversi e non posso utilizzare xmlhttprequest.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma... hai tutta una tua logica (che non capisco) Ajax senza xmlHttpRequest come dire pasta e fagioli senza fagioli, comunque ripeto dato che cari inizialmente id nella funzione invece di emetterla li, la metti in una variabile io meglio di cosi non so spiegartelo.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    13
    Ho capito quello che dici, ma non posso mettere l'id direttamente nella variabile perché php va ad aggiungere altri parametri nell'id. Non utilizzo ajax, ma uno script che in un certo senso svolge le stese funzioni. lo script puoi vederlo sopra. Ora ammesso che questo script non puo funzionare, come posso utilizzare ajax trovandomi su domini diversi?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Come detto e ridetto hai una tua logica, e non capendola non posso aiutarti, auguri
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    13
    Ok, ammesso che abbia risolto, ora come potrei creare tramite javascript una tabella con i dati presi da una stringa?
    Esempio, ho la seguente stringa: ID:0827|Nome:andrea|cognome:rossi|Nome:francesco|c ognome:biachi ?

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Si, usando uno split sul delimitatore |, ma creare la tabella sarà abbastanza complesso
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.