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

    Problema chiamando in cascata + funzioni javascript ognuna con richiesta AJAX

    Salve, ho un problema, e non riesco a venirne a capo, in pratica effettuo la chiamata in cascata di funzioni javascript dentro un'altra funzione (la setListini), l'effetto che ho è che soltanto la prima delle funzioni in cascata va a buon fine mentre le altre n funzioni non vengono proprio trattate. Ho provato a debuggare un pò il codice e ho notato che nel caso sotto va a buon fine solo getTappetini() contenuta in setListini(id) ma già se metto un alert dopo quella getTappetini() non viene proprio trattato...e a maggior ragione non viene presa in considerazione la getCopriauto(). Credo che ci sia un problema a livello di AJAX ma non sono molto pratico di AJAX in quanto l'ho leggicchiato un pò qua e là su internet perchè mi faceva comodo in questa mia situazione. Qualcuno ha un'idea di perchè le altre n-1 get contenute in setListini non vengono effettuate. Il codice è questo:
    codice:
    function setListini(id) {
      misur = document.getElementById(id+'.LIST_MISUR').value;
      semie = document.getElementById(id+'.LIST_SEMIE').value;
      tappe = document.getElementById(id+'.LIST_TAPPE').value;
      copri = document.getElementById(id+'.LIST_COPRI').value;
      obj = getHTTPObject();
      getTappetini(obj);
      getCopriauto(obj);
    }
    
    function getTappetini(httpobj) {
      modellotap = document.getElementById('menutappetini').value;
      if (httpobj != null) {
    	httpobj.open("GET", "elabora.php?TAP=" + tappe +"&NAME=" + modellotap, true);
    	httpobj.send(null);
    	httpobj.onreadystatechange = setOutputTappetini;
      }
       else {
    	alert('Else Tappetini!!!');
      }
      return;
    }
    
    function getCopriauto() {
      if (httpobj != null) {
    	httpobj.open("GET", "elabora.php?COP=" + copri, true);
    	httpobj.send(null);
    	httpobj.onreadystatechange = setOutputCopriauto;
      }
       else {
    	alert('Else Copriauto!!!');
      }
       return;
    }

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: questo credo che dipenda dalla funzione ajax che usi.
    Io ho provato con ABC.js presentata in questo forum tempo fa, e ho visto che va benissimo.

    Se fossi interessato, questo è un semplice esempio
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="piu_chiamate.aspx.vb" Inherits="CorsoApogeo_ajax_abc_piu_chiamate" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
        <link href="../../../stili/Styles.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="../../../js/abc.js"></script>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function richiama_ajax()
    {
        richiama_ajax1();
        richiama_ajax2();
        richiama_ajax3();
    }
    
    function richiama_ajax1()
    {
        ABC({onLoad:onLoad}, "?comando_ajax=1");
        function onLoad(request)
        {
            document.getElementById("div1").innerHTML = request.responseText;
        }
    }
    
    function richiama_ajax2()
    {
        ABC({onLoad:onLoad}, "?comando_ajax=2");
        function onLoad(request)
        {
            document.getElementById("div2").innerHTML = request.responseText;
        }
    }
    
    function richiama_ajax3()
    {
        ABC({onLoad:onLoad}, "?comando_ajax=3");
        function onLoad(request)
        {
            document.getElementById("div3").innerHTML = request.responseText;
        }
    }
    
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            Richiama in successione ajax
        </div>
        <div id="div1"></div>
        <div id="div2"></div>
        <div id="div3"></div>
        </form>
    </body>
    </html>
    ABC.js qui:
    http://webreflection.blogspot.com/20...asic-call.html
    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.