Visualizzazione dei risultati da 1 a 9 su 9

Discussione: imparare ajax

  1. #1

    imparare ajax

    ciao a tutti, sto imparando a fare le richieste HTTP con AJAX e ho scritto questo codice che non funziona:

    html
    codice:
    <input type="button" value="invia richiesta" onclick="scrivi()" />
    
    
    
     <div id="divo" style="background-color: #ffaaaa;">
      risultato richiesta
     </div>
    javascript
    codice:
    	//funzione che inserisce nella pagina il risultato della richiesta
    	function scrivi(){
    	 testo=richiesta()
       if(document.getElementById){
    	   document.getElementById('divo').innerHTML=testo
       }else{
    	   document.all['divo'].innerHTML=testo
    	 }
    	
    	}
    	//creo l'oggetto XMLHttpRequest
    	function richiesta(){
    	
    	if(window.XMLHttpRequest){//firefox e altri
    	 richiedi= new XMLHttpRequest()
    	 richiedi.overrideMimeType("text/xml")
    	}else if(window.ActiveXObject){//IE<7
    	 richiedi= new ActiveXObject("Microsoft.XMLHTTP")
    	}
    	
    	richiedi.onreadysetchange = inviaricevi 
    	richiedi.open("GET","azione.php",true)
    	richiedi.send(null)
    	 
    	return richiedi
    	
    	}
    	
    	function inviaricevi(){
    	
    	if(richiedi.readyState==4){
    	 if(richiedi.status==200){
    	  return richiedi.responseText
    	  
    	 }
    	}else{
    	 alert('richiesta non riuscita')
    	}
    	
    	}
    php
    codice:
    echo 'ciao';
    sapete dirmi dove sbaglio?
    Luca Pennisi - Web Marketing Specialist

  2. #2
    Allora vediamo un po'.

    codice:
     testo=richiesta()
       if(document.getElementById){
    	   document.getElementById('divo').innerHTML=testo
    testo = richiesta() ?

    la funziona richiesta() restituisce un oggetto no? Cioe' l'xmlhttprequest.
    Dovresti fargli restituire l'xmlhttprequest.responseText in modo da poter poi fare

    codice:
    document.getElementById('divo').innerHTML=testo
    Altrimenti come innerHTML del div ci mette un oggetto javascript e non un testo.

    Scusate se ho detto boiate, io solitamente uso il framework mootools per ajax, ma ho comunque letto articoli sull'oggetto XMLHttpRequest.

    Se vuoi un consiglio usa mootools che offre alcune funzioni ajax.

  3. #3
    ho provato con questo:

    codice:
    <head>
    
    
     <script type="text/javascript">
      
    	
    	//creo l'oggetto XMLHttpRequest
    	function richiesta(){
    	
    	if(window.XMLHttpRequest){//firefox e altri
    	 richiedi= new XMLHttpRequest()
    	 richiedi.overrideMimeType("text/xml")
    	}else if(window.ActiveXObject){//IE<7
    	 richiedi= new ActiveXObject("Microsoft.XMLHTTP")
    	}
    	
    	richiedi.onreadysetchange = inviaricevi 
    	richiedi.open("GET","azione.php",true)
    	richiedi.send(null)
    	 
    	return richiedi
    	
    	}
    	
    	function inviaricevi(){
    	
    	if(richiedi.readyState==4){
    	 if(richiedi.status==200){
    	  scrivi(richiedi.responseText)
    	  
    	 }
    	}else{
    	 alert('richiesta non riuscita')
    	}
    	
    	}
    	
    	function scrivi(txto){
    	document.GetElementById('divo').innerHTML=txto
    	}
    	
     </script>
    
     
     
    </head>
    <body>
    
     <input type="button" value="invia richiesta" onclick="richiesta()" />
    
    
    
     <div id="divo" style="background-color: #ffaaaa;">
      risultato richiesta
     </div>
    
    </body>
    e non succede niente, dove sbaglio?
    Luca Pennisi - Web Marketing Specialist

  4. #4
    up!
    Luca Pennisi - Web Marketing Specialist

  5. #5
    controlla bene:
    la variabile richiedi dove viene dichiarata?
    Risposta: dentro la funzione richiesta()
    e pretendi anche che sia visibile anche dentro la funzione inviaricevi()?
    poi ... che metodo &egrave; richiedi.onreadysetchange ??
    semplicemente non esiste, mentre esiste onreadystatechange

    Vuoi un consiglio?
    Invece di andare per tentativi (usi come browser Internet Explorer, vero?)
    usa Firefox con l'estensione FireBug e ...
    leggi l'ottima Guida Ajax presente proprio in html.it!

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  6. #6
    uso da sempre firefox, ora provo a vedere quello che mi hai detto e ti faccio sapere
    Luca Pennisi - Web Marketing Specialist

  7. #7
    onreadystatechange è aposto ma in che senso devo rendere la variabile visibile nella funzione inviaricevi? devo passarla come parametro? devo dichiarare una variabile globale? ho provato a fare le 2 cose ma non succede niente, l' unica differenza è che dichiarando una variabile globale o lasciando il codice com' è viene fuori il messaggio: "richiesta non riuscita" per 4 volte mentre passandola come parametro il messaggio vien fuori una volta sola, (perdonate l' ignoranza) ma che posso fare?
    Luca Pennisi - Web Marketing Specialist

  8. #8
    up!
    Luca Pennisi - Web Marketing Specialist

  9. #9
    up! up!! non c' è nessuno sul forum che sappia fare le richieste http in ajax?
    Luca Pennisi - Web Marketing Specialist

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.