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

    ajax httpObject.onreadystatechange non funziona con explorer

    ciao, ho un problema con un codice ajax che sto facendo, non lavora con ie.
    L'ho testato con firefox chrome safari e funziona, ma con ie no.
    Sapreste dirmi perchè e come sistemarlo?

    di seguito vi metto il mio codice

    Codice PHP:
    function setOutput(){
       
        if(
    httpObject.readyState == 4){
              
    document.getElementById('tab_news').innerHTMLhttpObject.responseText;
        }
        
    }
         
        
    // Implement business logic
    function show_news(pageprimomassimo){
        
    httpObject getHTTPObject();

        
                
        if (
    httpObject != null) {

            
    httpObject.open("POST""ac_news.php?primo="+primo+"&massimo="+massimotrue);
            
    httpObject.send(null);
            
    httpObject.onreadystatechange setOutput;
        } 

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    Forse il problema è: getHTTPObject();

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    Prova ad usare questa e vedi se cambia qualcosa, io l'ho presa dalla rete:
    codice:
    function assegnaXMLHttpRequest()
    {
    	// lista delle variabili locali
    	var  
    	// variabile di ritorno, nulla di default
    	XHR = null,
    	// informazioni sul nome del browser
    	browserUtente = navigator.userAgent.toUpperCase();
    	// browser standard con supporto nativo
    	// non importa il tipo di browser
    	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
    		XHR = new XMLHttpRequest();
    		// browser Internet Explorer
    		// è necessario filtrare la versione 4
    	else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
    		// la versione 6 di IE ha un nome differente
    		// per il tipo di oggetto ActiveX
    		if(browserUtente.indexOf("MSIE 5") < 0)
    			XHR = new ActiveXObject("Msxml2.XMLHTTP");
    			// le versioni 5 e 5.5 invece sfruttano lo stesso nome
    		else
    			XHR = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	return XHR;
    }
    in pratica sostituisci getHTTPObject(); con assegnaXMLHttpRequest();
    Vedi se cambia qualcosa.

  4. #4
    no, non funziona nemmeno con questo, e per di più non funziona nemmeno con chrome.
    A voi non è mai capitato?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    ...e se metti questo

    codice:
     
    httpObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    tra open e send??

    Puoi provare così:

    codice:
    httpObject.open("POST", "ac_news.php", true); 
    httpObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var dati="primo="+primo+"&massimo="+massimo;
    httpObject.send(dati); 
    httpObject.onreadystatechange = setOutput;
    A me così funziona, sempre che in httpObject ci sia l'oggetto!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    254
    Poi prova una cosa, forse lo hai già fatto:

    codice:
    if(httpObject.readyState == 4){ 
              document.getElementById('tab_news').innerHTML= httpObject.responseText;
         }else{
                alert(httpObject.status+" "+httpObject.responseText);
         }
    Così testi se il problema è onreadystatechange o altro perchè su ie, onreadystatechange, funziona.

    Ciao

  7. #7
    non funziona, hoprovato a mettere lo status ed explorer mi da 200
    però per vedere l'alert devo mettero all'inizio della funziona
    così
    Codice PHP:
    function setOutput(){
     
    alert(httpObject.status);
        if(
    httpObject.readyState == 4){
              
    document.getElementById('tab_news').innerHTMLhttpObject.responseText;
        }else{
                
    //alert(httpObject.status);  NON LO VISUALIZZA tranne se metto del testo normale es. ciao
         

        


  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Prova a fare questa modifica
    codice:
              
        if (httpObject != null) {
    
            httpObject.open("POST", "ac_news.php", true);
    var query = "primo="+primo+"&massimo="+massimo
            httpObject.send(query);
            httpObject.onreadystatechange = setOutput;
        }
    se persiste il problema:
    - getHTTPObject() postala
    - link alla pagina pubblica per provarla/testarla.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    scusate il ritardo ma sono stato impegnato con la scuola.
    NOn funziona, vi posto il codice
    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(){
    
        if(httpObject.readyState == 4){
      		document.getElementById('tab_news').innerHTML= httpObject.responseText;
        }
    	
    }
         
        // Implement business logic
    function show_news(page, primo, massimo){
        httpObject = getHTTPObject();
    	//httpObject = assegnaXMLHttpRequest();
    	
    	var link_massimo = 5;
    	var link_primo;
    	var prev_page = page-1;
    	var next_page = page+1;
    	var maxpage = <?php echo $maxPage?>;
    	
    			
    	if (httpObject != null) {
    
    		/*httpObject.open("POST", "ac_news.php?primo="+primo+"&massimo="+massimo, true); 
    		var dati="primo="+primo+"&massimo="+massimo;
    		httpObject.send(null); 
    		
    		httpObject.onreadystatechange = setOutput;*/
    		 httpObject.open("GET", "ac_news.php", true);
    		var query = "primo="+primo+"&massimo="+massimo
            httpObject.send(query);
            httpObject.onreadystatechange = setOutput;
    	}
    	
    		link_primo_prev = (link_massimo * prev_page) - link_massimo;
    		link_primo_next = (link_massimo * next_page) - link_massimo;
    
    if(prev_page > 0) document.getElementById('prev').innerHTML = "<font class=\"pointer\" onclick=\"show_news("+prev_page+", "+link_primo_prev+", "+link_massimo+")\"><img src=\"img/prev.png\" title=\"prev\" border=\"0\"></font>";
    else document.getElementById('prev').innerHTML = "";
    
    if(next_page <= maxpage) document.getElementById('next').innerHTML = "<font class=\"pointer\" onclick=\"show_news("+next_page+", "+link_primo_next+", "+link_massimo+")\"><img src=\"img/next.png\" title=\"next\" border=\"0\"></font>";
    else document.getElementById('next').innerHTML = "";
    		
    		document.getElementById('num_page').innerHTML = "Page "+page+" of "+ maxpage;
    
    }		
    
    
         
        var httpObject = null;
         
        //-->
    la pagina pubblica è questa http://www.smoothout.net/news_ajax.php
    come vedete in questo modo non funziona con nessun browser.
    vi posto anche il codice della pagina php

    Codice PHP:
    $primo $_GET["primo"];
        
    $massimo $_GET["massimo"];
        
        
    $risposta "";
         
        
    $sql "SELECT *,DATE_FORMAT(data,'%b %d, %Y') FROM news ORDER BY data DESC LIMIT $primo,$massimo";
        
    $res mysql_query($sql);
        while(
    $row mysql_fetch_array($res)){
            
    $id $row["id"];
            
    $titolo $row["titolo_news"];
            
    $testo $row["testo_news"];
            
    $data $row["DATE_FORMAT(data,'%b %d, %Y')"];
            
    $img $row["img"];
            
            
    $risposta .= "<tr><td colspan=\"2\" class=\"bkg_transparent p_news\"><a href=\"news.php\">".$data." | ".ucfirst($titolo)."</a></td></tr>
                    <tr>
                        <td width=\"100\" align=\"left\" valign=\"top\" class=\"bkg_transparent p_news\">"
    ;
                        
                        if(
    $img != ""$risposta .= "<img src=\"./img_news/100/".$id."_100_".$img."\" width=\"100\" align=\"left\" alt=\"$titolo\" border=\"0\">";
                        else 
    $risposta .= "<img src=\"./img/bkg_news.jpg\" width=\"100\" alt=\"news\" border=\"0\">";
                        
                    
    $risposta .="</td><td width=\"623\" valign=\"top\" class=\"bkg_transparent p_news\"><a href=\"news.php\" style=\"color:#fff\">".ucfirst($testo)."</a></td></tr>";

            
    $risposta .= "<tr><td height=\"5\"></td></tr>";
            }
            
            echo 
    $risposta
    se httpObject.send(null); lo lasciate 'null' ed i parametri li passate con l'url il sistema funziona su tutti tranne su ie

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.