Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517

    ricaricare pagina con ajax

    Salve ragazzi ho queste due funzioni che richiamano due pagina php:
    codice:
    function richiestacomposto(valore) {
    myRequest = CreateXmlHttpReq2(myHandler3);
    
    myRequest.open("GET","amministratore_dacosacomposto.php?c="+escape(valore));
    showhide('selezionecomposto');
    myRequest.send(null);
    
    }
    e la seconda:

    codice:
    function richiestacreato(valore) {
    
    myRequest = CreateXmlHttpReq2(myHandler4);
    
    myRequest.open("GET","amministratore_cosacreatoprodotto.php?c="+escape(valore));
    showhide('selezionecreato');
    myRequest.send(null);
    
    }
    Esse vengono richiamate da due tasti differenti e fin qui tutto bene,le pagine richiamate a loro volta contengono i medesimi tasti, il problema sta nel fatto che se clicco in maniera consecutiva sulllo stesso pulsante la seconda volta non mi apre la pagina , ma nella console non ci sono errori, mentre se clicco in maniera alternata (prima su uno e poi sull'altro ) non ci sono problemi come mai?

    Esempio:

    ho la pagina 1.php con tasti A(richiama pagina 2.php) e B(richiama pagina 3.php), sia pagina 2.php e 3.php contengono gli stessi tasti A e B che richiamano le stesse pagine ricaricandole. Se clicco in 1.php il pulsante A mi apre la pagina 2 correttamente, se clicco nella pagina 2.php di nuovo A(con nuovi parametri ovviamente) la pagina viene caricata ma non visualizzata,stesso problema se faccio B B, mentre se clicco in manienra alternata A B A B posso farlo all'infito senza nessun problema
    SPero di essermi espresso correttamente

  2. #2
    scusa, ma ajax serve per non ricaricare pagine, e tantomeno per spostarsi.

    Perché fai questo? c'è qualcosa di sbagliato

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Originariamente inviato da Gluck74
    scusa, ma ajax serve per non ricaricare pagine, e tantomeno per spostarsi.

    Perché fai questo? c'è qualcosa di sbagliato
    Ora ti spiego ho dei div nascosti (all'interno includono delle pagine php), al momento del click diventano visibili ed io passo le variabili alla pagina php

  4. #4
    non ho capito di nuovo

    tu hai dei div con <? include ?> ??

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Originariamente inviato da Gluck74
    non ho capito di nuovo

    tu hai dei div con <? include ?> ??
    si si

  6. #6
    ora ho capito. e tu con le chiamate ajax che vorresti fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Originariamente inviato da Gluck74
    ora ho capito. e tu con le chiamate ajax che vorresti fare?
    io ho questo:
    codice:
    function richiestacreato(valore) {
    
    myRequest = CreateXmlHttpReq2(myHandler4);
    
    myRequest.open("GET","amministratore_cosacreatoprodotto.php?c="+escape(valore));
    showhide('selezionecreato');
    myRequest.send(null);
    
    }

    questo è il div
    codice:
    <div id="selezionecomposto" style="border:0px ; padding:0px; display: none; position: absolute; left: 280px; top: 120px; background:#C9BA8C;; z-index:1" >
    <? include ("amministratore_cosacreatoprodotto.php"); ?>
    </div>

  8. #8
    immaginiamo di avere p1.php, p2.php, p3.php

    dunque, tu carichi la p1, e vedi tutto il codice HTML di p1 +p2 +p2 perché sono incluse.

    La chiamata ajax server per eseguire in maniera asincrona (in background) un'altra pagina, senza che p1 si ricarichi, e prelevarne il risultato, che poi metterai con javascript dentro il browser.

    In pratica:
    codice:
    function richiestacreato(valore) {
        myRequest = CreateXmlHttpReq2(myHandler4);
        myRequest.open("GET","p2.php?c="+escape(valore));
        myRequest.send(null);
    }
    la funziona crea una richiesta asincrona ed il risultato lo mette in myrequest. Terminata la richiesta (myrequest.send), viene richamata la funzione myHandler4 passandogli il risultato (dicesi callback).
    Quindi tu devi avere una funzione fatta così:
    codice:
    function myHandler4() {
        if (myRequest.readyState == 4 && myRequest.status == 200) {
            divP2 = document.getElementById('idDelDivCheContieneIncludeP2');
            divP2.style.display = 'block';
            divP2.innerHTML = myRequest.responseText;
        }
    }
    Con questa funzione vai a riempire il div con il codice restituito dall'esecuzione della pagina in maniera asincrona.
    Ammetto che inizialmente potrebbe essere complesso, ma con un po di attenzione non è difficile.

    In pratica tu hai uno strumento che ti permette di richiedere l'esecuzione di una pagina di nascosto dal browser, e ricevere l'equivalente HTML in un contenitore (ammesso che la pagina fornisca semplice HTML).
    questo strumento, appena terminata la richiesta, ti permette di richamare una funzione javascript passando come parametro il risultato HTML.
    Da questa funzione puoi modificare il DOM della pagina principale per visualizzare il risultato.

    OK?

    Quindi puoi anche togliere i due include dalla pagina P1 !!!!!!!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Grazie Gluck74, ora ho capito meglio... Comunque anche seguendo questa via mi da lo stesso problema

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.