Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ciclo ajax

  1. #1

    ciclo ajax

    ciao a tutti
    ho questo script

    codice:
    <script language="javascript" type="text/javascript">
    var myRequest = null;
    
    var IDSITO = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
    function CreateXmlHttpReq(handler)
    {
    	var xmlhttp = null;
    	try
    	{
    		xmlhttp = new XMLHttpRequest();
    	}
    	catch(e)
    	{
    		try
    		{
    			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch(e)
    		{
    			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	xmlhttp.onreadystatechange = handler;
    	return xmlhttp;
    }
    
    function myHandler()
    {
    	
    	if (myRequest.readyState == 4 && myRequest.status == 200)
    	{
    		var elemento = "paragrafo" + i;
    		e = document.getElementById(elemento);
    		e.innerHTML = myRequest.responseText;
    	}
    }
    
    
    function checklink()
    {
    	myRequest = CreateXmlHttpReq(myHandler);
    	myRequest.open("GET","check.php?id=" + IDSITO[0], true);
    	myRequest.send(null);
    }
    
    </script>
    come posso fare affinchè la funzione check link e quindi anche poi myhandler vengano eseguite per tutti gli elementi dell'array IDSITO ????

    per se i controlli sono fatti uno alla volta funziona altrimenti no

    spero possiate aiutarmi
    ciauz

  2. #2
    Ciao,
    non so se ho capito la tua richiesta,
    cmq:

    Codice PHP:

    function checklink()
    {
       for(var 
    i=0iIDSITO.length;i++){ 
        
    myRequest CreateXmlHttpReq(myHandler);
        
    myRequest.open("GET","check.php?id=" IDSITO[i], true);
        
    myRequest.send(null);
       }

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

  3. #3
    ciao

    in questo modo ci avevo provato
    solo che non mi funziona perchè il ciclo deve scorrere contemporaneamente anke nella funzione
    myHandler

    perchè in pratica io voglio eseguire la pagina php in background una volta che ha caricato tutto.
    e tramite innerHTML vorrei andare a sostituire un immagine di carimente che gira con l'immagine di controllo effettuato che mi restituisce la pagina php

    come posso fare?

  4. #4
    Ci riprovo:

    Codice PHP:

    function myHandler(i)
    {
        
        if (
    myRequest.readyState == && myRequest.status == 200)
        {
            var 
    elemento "paragrafo" i;
            
    document.getElementById(elemento);
            
    e.innerHTML myRequest.responseText;
        }
    }

    function 
    checklink()
    {
       for(var 
    i=0iIDSITO.length;i++){
        
    myRequest CreateXmlHttpReq(myHandler(i));
        
    myRequest.open("GET","check.php?id=" IDSITO[i], true);
        
    myRequest.send(null);
       }

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

  5. #5
    boh non va

    non capisco perchè

    ho provato a richiamare la funzione in maniera singola
    con un intervallo di tempo e funziona mentre tutte insieme no

    boh
    io vorrei eseguire un po di operazioni in background
    ankora non ho avuto modo di adattarlo al codice che mi serve per lavoro
    pero richiamando lo script ad ogni paragrafo con
    setTimeout("checklink(4)", 2000);
    setTimeout("checklink(5)", 3000);
    setTimeout("checklink(6)", 4000);

    con dei richiami in serie in questo modo funzia se no non va niente

    sai come aiutarmi?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    funziona così? :master:

    codice:
    function Button1_onclick() 
    {
        var idsito = [0,1,2,3,4,5,6,7,8,9,10,11,12,13];
        $("div1").innerHTML = "";
        var contatore = 0;
        fai_richiesta();
        
        function fai_richiesta()
        {
            ajax("?ajax_comando=1&idsito=" + idsito[contatore], onload);
        }
        
        
       function onload()
       {
            var t = this.request.responseText;
            var v = $("div1");
            v.innerHTML += t + "
    ";
            contatore++;
            if(contatore < idsito.length) fai_richiesta();
       } 
    }
    Pietro

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.