Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    12

    problemi con richieste ajax

    ciao ragazzi ho un problema:

    in una pagina web ho il seguente codice

    <form onSubmit="return valida_dato()" action="aggiorna_parametri.php" method="post">

    se non sbaglio una volta che viene premuto il bottone di submit viene richiamata la funzione javascript valida_dato e se questa ritorna true viene chiamata la pagina aggiona_parametri.php.

    in tale funzione javascript faccio una richiesta ajax al server e volevo ritornare un valore in base alla risposta del server.

    Il problema è che dopo aver chiamato la funzione send : xmlHttp.send(send); (con metodo post e dove xmlHttp sta per XMLHttpRequest) non ho trovato il modo per accedere al valore accessibile tramite xmlHttp.responseText nella funzione assegnata all'evento "onreadystatechange". In senso, come faccio dopo la chiamata al metodo send a accedere al risultato della richiesta e di conseguenza tornare o true o false?

    grazie per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    12
    volevo precisare meglio: avevo provato a salvare il risultato ottenuto da responseText su una variabile globale ma il problema è che nella funzione dove chiamo il metodo send se accedo a quella variabile non è detto che la richiesta al server sia stata terminata. Ho provato quindi ad aspettare che la richiesta sia terminata con

    while (req.readyState != 4) {}

    ma lo script si blocca...

    qualcuno mi aiuti

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La pagina php darà un out in tutti i casi (qualora funzioni correttamente) del tipo:
    Invio dati la pagina php elabora...... tutto è andato bene stampa "ok" qualcosa è andato storto stampa "errore" nel respose.Text avrai uno dei due, che leggendolo potrai farne quello che vuoi.
    Oppure non ho capito il problema, in tal caso provaci ancora sem!!
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    dalla funzione richiamata all' onsubmit devi comunque far ritornare false,
    il form non aspetta che tu abbia il risultato di una chiamata asincrona per decidere se procedere o meno al submit

    poi, se quello che ricevi come risultato dalla chiamata asincrona soddisfa le condizioni che tu sai, forzi il submit
    con document.nomeForm.submit() o document.getElementyById('idForm').submit()
    o comunque referenzi il form

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    12
    Originariamente inviato da Xinod
    dalla funzione richiamata all' onsubmit devi comunque far ritornare false,
    il form non aspetta che tu abbia il risultato di una chiamata asincrona per decidere se procedere o meno al submit

    poi, se quello che ricevi come risultato dalla chiamata asincrona soddisfa le condizioni che tu sai, forzi il submit
    con document.nomeForm.submit() o document.getElementyById('idForm').submit()
    o comunque referenzi il form

    ciao
    Innanzi tutto grazie mille per la risposta.

    Il problema è che se chiamo document.getElementyById('idForm').submit() nella funzione atta a ricevere il risultato della chiamata asincrona, viene richiamata la funzione valida_dato mentre io voglio fare chiamare la pagina aggiorna_parametri.php(nel caso sia soddisfatta la condizione)...ti scrivo la form

    <form onSubmit="return valida_dato()" action="aggiorna_parametri.php" method="post">

    come posso fare?

    ringrazio ancora per l'attenzione, sto veramente impiegando un sacco di tempo per fare questa cosa

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da DonZaza
    mentre io voglio fare chiamare la pagina aggiorna_parametri.php(nel caso sia soddisfatta la condizione)...
    chiamare la pagina in action non vuol dire inviare il form,
    tu vuoi inviare il form?

    per quanto riguarda l' onsubmit richiamato da submit(), e' un' introduzione abbastanza recente,
    prima i browser non richiamavano l' onsubmit al submit del form via javascript
    comunque puoi aggirarlo facilmente, per darti un esempio, poi vedi come perfezionarlo
    codice:
    var doNotConsiderOnSubmit=false;
    
    function valida_dato(){
      if(doNotConsiderOnSubmit) return true;
      blablabla
    }
    
    tuaFunzioneAjax(){
      blablabla
      se e' da inviare aggirando l' onsubmit
      doNotConsiderOnSubmit=true;
      riferimentoAForm.submit();
    }
    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    12
    var doNotConsiderOnSubmit=false;

    function valida_dato(){
    if(doNotConsiderOnSubmit) return true;
    blablabla
    }

    tuaFunzioneAjax(){
    blablabla
    se e' da inviare aggirando l' onsubmit
    doNotConsiderOnSubmit=true;
    riferimentoAForm.submit();
    }
    GRANDISSIMO!!!!!!!!

    grazie mille, era proprio quello che cercavo, non ci avevo proprio pensato!

    stammi bene e grazie ancora

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.