Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    3

    Strano comportamento di una funzione, si esegue solo con un alert

    Ciao a tutti, sono nuovo come registrato nonostante segua il forum da molto tempo per cercare consigli e soluzioni. Purtroppo ora mi trovo ad affrontare un poblema con una funzione particolare che riceve una risposta da una pagina php tramite chiamata ajax: sostanzialmente se non metto l'alert che ho evidenziato la funzione non si esegue e non ho idea del motivo. Vi posto di seguito il codice e spero mi possiate aiutare:
    codice:
    // Get the HTTP Object
    function getHTTPObject(){
       if (window.ActiveXObject) {
          return new ActiveXObject("Microsoft.XMLHTTP");
       } else {
    	  if (window.XMLHttpRequest) {
          return new XMLHttpRequest();
    	  } else {
          alert("Your browser does not support AJAX.");
          return null;
          }
       }
     }
    
    // Change the value of the outputText field
    function setOutput(ident){
    	
    	//alert('siamo nel setOutput'); 
    	if(httpObject.readyState == 4){
    		var x = httpObject.responseText;
    		
    		//USERNAME
    		if(ident==1){
    			if(x==1 && $('c23').value.length >= 6 ){
    				$('outputText').innerHTML = '<span style="color:#13c500;">Nome Libero</span>';
    				$('regIco').style.backgroundImage='url(images/regOk.png)';
    				conferma[0]=1;
    			}else{
    				if(x==0){
    					$('outputText').innerHTML = '<span style="color:#c52e00;">Nome non Disponibile</span>';
    					$('regIco').style.backgroundImage='url(images/regWrong.png)';
    					conferma[0]=0;
    				} else {
    					$('outputText').innerHTML = '<span style="color:#fead00;">Nome Troppo Corto</span>';
    					$('regIco').style.backgroundImage='url(images/regInf.png)';
    					conferma[0]=0;
    				}
    			}
    		}
    		//FINE USERNAME
    	}
    }
    la funzione che vedete col simbolo del dollaro $ è per sintetizzare document.getElementById

    Grazie in anticipo per un qualsiasi suggerimento

  2. #2
    Ciao axel000,
    era capitato anche a me una situazione del genere:
    praticamente l'alert siccome richiedeva un intervento dell'utente di fatto creava un ritardo che serviva per inizializzare quello che seguiva nel codice.

    Prova ad inserire un seTimeout:
    probabilmente otterrai lo stesso effetto dell'alert.

    Se così fosse, prova a passare anche l'oggetto httpObject alla funzione incriminata.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    3
    ho appena provato, purtroppo non ha sortito effetto. sembra che l'alert inneschi qualcosa nel codice che gli permette di funzionare, in sua assenza non vi è alcuna reazione..

  4. #4
    Ciao,
    come richiami la callback?
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    3
    Ciao grazie dell'assistenza ho trovato proprio l'errore nella call:

    codice:
    function doWork(_functInd,_field){
    	httpObject = getHTTPObject();
    	if (httpObject != null) {
    		httpObject.open("GET", "controllo.php?inputText="+$(_field).value+"&funct="+_functInd, true);
    		httpObject.send(null);
    		httpObject.onreadystatechange = setOutput;
    		ident=_functInd;
    	}
    }
    questa è le versione che ho corretto, prima sostanziamente avevo cercato di passare un paramentro sulla riga httpObject.onreadystatechange = setOutput; con le classiche parentesi; quest'errore non so come bloccava tutto il funzionamento e la alert ancora una volta non so come ma faceva procedere la funzione.

    Ti ringrazio ancora per la disponibilità, direi problema risolto

    Ciao

  6. #6
    Figurati,
    no problem

    Buon Lavoro
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

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.