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

    Ajax, chiamate concatenate

    Uso Ajax in maniera molto grezza.
    Istanzio l'oggetto XMLHttpRequest con una funzione del tipo
    codice:
    function newXMLHttpRequest(){		
            if(typeof XMLHttpRequest != 'undefined'){
                return new XMLHttpRequest();
            }
            
            try {
                return new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    return new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                	alert("Il tuo browser non è abilitato al corretto uso del sito");
                }
            }
            
            return false;
        }
    e gestisco la risposta in maniera altrettanto grezza

    codice:
    function handleResponse(req, XMLHandler){ 
    		return function(){ 
    		
    			if(req.readyState == 4){ 
    			
    				if (req.status == 200){ 
    				
    					XMLHandler(req.responseText); 
    				}else{ 
    					alert("Errore HTTP: " + req.status); 
    				} 
    			} 
    		} 
    	}
    Su un OnClick mi tocca chiamare due funzioni che dialogano con due script PHP molto semplici.
    Quello che fanno è una query secca che ritorna un numero.
    Ognuna di queste due funzioni deve aggiornare un campo col solito innerHTML.

    Un esempio di funzione è questo

    codice:
    function updateNeutri(infID,cittaID){	
    		//Creo un nuovo oggetto XMLHTTPRequest		
    		var req = newXMLHttpRequest();												
    		
    		//Invio la richiesta
    		req.open("POST", "./influenze_neutri.php?infID="+infID+"&cittaID="+cittaID, true);
    		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		
    		//Invio i dati POST
    		req.send();				
    		
    		//Gestore dell'evoluzione dello stato dell'oggetto req
    		req.onreadystatechange = handleResponseComplex(req, updateValoreNeutri, infID);
    	}
    	
    	function updateValoreNeutri(result,suffix){ 												
    		document.getElementById('valore_neutro_' + suffix).innerHTML = result;					
    	}
    Accede però che a volte il secondo script non viene eseguito o forse la risposta non viene gestita, insomma il secondo campo che dovrebbe aggiornarsi non si aggiorna.

    Le due funzioni sono chiamate entrambe sull'onClick, separate da ;

    Come posso avere la certezza che, a meno di problemi di rete, anche la seconda funzione faccia il suo sporco lavoro?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Credo che per avere la certezza di eseguire entrambe le chiamate e farle a cascata
    funzione ajax1(){
    elaboro.... al response con un if verifico se corretto invio a funzione ajax2(){
    elaboro...
    }}
    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.