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

    function chiamata cn ajax return undefined

    ciao a tutti.. sto provando a fare qualcosina con la lettura di pagine tramite ajax e modifica di altre... il problema e' che se chiamo una mia funzione tramite ajax se metto un alert di una variabile all'interno di questa funzione viene visualizzato correttamente, se pero' questa variabile la metto come return della funzione e l'alert lo metto subito sotto la chiamata ajax mi ritorna Undefined....



    nello specifico...
    Codice PHP:
    function prova(m){
            var 
    ans document.createElement('DIV');
            
    ans.innerHTML m.responseText;
            var 
    ansdoc document.implementation.createDocument(""""null);
            
    ansdoc.appendChild(ans);
            var 
    ansdoc.evaluate("//table"ansnullXPListnull);

            return 
    0;
        }

    function 
    funzionechiamante(){

            var 
    proviamo ajaxRequest('http://blabla.it'"GET"nullprovadummy);
            
            
    alert(proviamo);

    nell'alert non esce 0 ma esce undefined stessa cosa se invece di far fare return 0 facessi fare return test; dove in test ci butto dentro un qualsiasi valore...

  2. #2

    Ajax

    Sì, anch'io avevo un problema del genere.
    Il fatto è che una richiesta ajax è asincrona, cioè tu comunichi col server e il server, dopo un po' ti risponde.
    Per cui l'istruzione
    Codice PHP:
    var proviamo ajaxRequest('http://blabla.it'"GET"nullprovadummy); 
    non fa quello che vuoi perché al momento dell'assegnazione la richiesta non è stata ancora completata.

    Se non ci credi, prova a inserire un timer (con setTimeout) per visualizzare il "contenuto" di proviamo dopo qualche secondo...

    Spero di essere stato d'aiuto...
    ciao!

  3. #3

    Re: Ajax

    Originariamente inviato da mgofficial
    Sì, anch'io avevo un problema del genere.
    Il fatto è che una richiesta ajax è asincrona, cioè tu comunichi col server e il server, dopo un po' ti risponde.
    Per cui l'istruzione
    Codice PHP:
    var proviamo ajaxRequest('http://blabla.it'"GET"nullprovadummy); 
    non fa quello che vuoi perché al momento dell'assegnazione la richiesta non è stata ancora completata.

    Se non ci credi, prova a inserire un timer (con setTimeout) per visualizzare il "contenuto" di proviamo dopo qualche secondo...

    Spero di essere stato d'aiuto...
    ciao!
    quindi mi dici basta mettere un timer magari di 1 o 2 secondi cn il setTimeout e il return dara' qualcosa? se cosi' nn e' un grosso problema l'utente attende tanto nn corre dietro nessuno :P

    ma devo fare cosi'?

    Codice PHP:
    var proviamo setTimeout(ajaxRequest('http://blabla.it'"GET"nullprovadummy), 2000);
    alert(proviamo); 
    ? xke nn mi sembra funzionare... anzi :\

    l'alert mi visualizza un 3 e non ho idea di cosa stia ad indicare... anche xke' per prova gli faccio fare return 0;

  4. #4

    ajax

    beh no scusa, il problema dovrebbe essere affrontato in un altro modo
    per esempio, tu chiami la funzione che esegue la chiamata asincrona:

    ajaxRequest('http://blabla.it', "GET", null, prova, dummy, VARIABILE');

    e ci aggiungi un argomento in fondo, 'VARIABILE'

    nella funzione ajaxRequest

    function ajaxRequest(...,..., ..., variabile) {
    // tutto il codice
    // Ajax è l'oggetto che permette la chiamata asincrona
    // responseText è la proprietà che restituisce i "dati" ottenuti dal server
    variabile = Ajax.responseText;
    }

    in questo modo tu specifichi una variabile negli argomenti, e la funzione ajaxRequest, una volta effettuata l'operazione, assegnerà automaticamente il valore della transazione a quella variabile che hai specificato.
    stai attento però ai problemi di visibilità con le variabili
    potresti fare così (un altro metodo)
    cioè predisponi già una variabile che contenga il valore della transazione

    var mioScript = {
    Risultato: "",
    AjaxRequest: function(..., ..., ...) {
    mioScript.Risultato = Ajax.responseText;
    },
    MiaFunzione: function() {
    mioScript.AjaxRequest(..., ..., ...);
    setTimeout("alert(mioScript.Risultato)", 3000);
    }
    }

    se hai problemi fammi sapere

  5. #5
    onestamente nn ho capito molto... :\ non e' che hai msn cosi' potremmo (se hai tempo) discuterne li?

    in pratica io cn ajax richiamo una funzione che legge la pagina fa dei calcoli e mi crea un array.. e io con il return di questa funzione mi volevo far passare questo array che poi utilizzavo all'interno della funzione in cui usavo ajax...

    e' un po' complesso da spiegare lo so e io nn son nemmeno capace di spiegarlo ehehe

  6. #6
    sto iniziando ad uscire pazzo... ora non capisco nemmeno xke' nello script

    var xzz= 'ciaooo';
    alert(xzz);
    var bah = setTimeout("alert(xzz);",1000);


    il primo alert viene visualizzato mentre il secondo che in teoria dovrebbe partire dopo 1 sec nn va... se pero' la scritta xzz nel secondo alert la metto tra ' ' (come normale stringa) l'alert viene visualizzato

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.