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

    come determinare una sequenza di funzioni javascript

    salve a tutti, avrei un problema con javascript... le mie intenzioni sono le seguenti:

    caricare la pagina, fino ad un certo punto, dove dovrei richiamare una funzione che mi inizializzi delle variabili globali, per poi riempire una tabella... ma la sequenza non è quella che io speravo ...

    questo è il codice dellla pagina .aspx

    codice:
     
    
    .......
    <head runat="server">
       
       
        <title></title>
        <script type="text/javascript">
            var rows = null;
            var rowsCount = null;
            var columns = null;
            var columnCount = null;
    
    
            function createRowsTableDataSource() {
                $.ajax({
                    type: "POST",
                    url: "WebServices/LoadCombo.asmx/getRighe",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    data: {},
    
                    success: function (msg) {
                        
    
                        rows = $.parseJSON(msg.d);
                        rowsCount = rows.length;
    
                    },
                    error: function (err) {
                        alert(err.statusText);
                    }
                });
            }
    
            function createColumnsTableDataSource() {
                $.ajax({
                    type: "POST",
                    url: "WebServices/LoadCombo.asmx/getColonne",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    data: {},
    
                    success: function (msg) {
    
    
                        columns = $.parseJSON(msg.d);
                        columnCount = columns.length;
                      
    
                    },
                    error: function (err) {
                        alert(err.statusText);
                    }
                });
                return false;
            }
       
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <table border=1>
        <script type="text/javascript">
    
            createColumnsTableDataSource();
    
            createRowsTableDataSource();
    
       for (i=0; i<rowsCount.length; i++){
            document.write("<tr>");
            for (a = 0; a < columnCount.length; a++) {
                document.write("<td>" + rows[a] + "</td>");
            }
                document.write("</tr>")
       }
    
    
        </script>
        </table>
    
        </div>
        </form>
    </body>
    </html>
    eseguendo questo codice, prima va sul ciclo for () (quindi mi da errore essendo rowsCount undefined), e solo dopo mi carica le due funzioni....

    come posso risolvere???

    ringrazio anticipatamente

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    certamente non puoi stampare con document.write parti di codice che si basano fortemente su quanto ritornato da una chiamata asincrona, sarebbe una vera e propria contraddizione perche' document.write scrive senza sovrascrivere TUTTO il documento solo se richiamato in fase di rendering

    jquery ha TANTI metodi per manipolare il DOM, applicali nel callback della tua chiamata ajax

    ciao

  3. #3
    ciao Xinod, grazie per la risposta,

    come avrai certo visto, le chiamate ajax sono 2, che mi restituiscono due vettori, e per fare delle righe e delle colonne mi servono entrambi gli array contemporaneamente... mi daresti un'idea di come averli entrambi per costruire la tabella??

    grazie

  4. #4
    ok.... risolto con la funzione .ajaxComplete

    codice:
    var numOfAjaxRequests = 2;
                $(document).ajaxComplete(function () {
                    numOfAjaxRequests--;
                    if (!numOfAjaxRequests) {
                        alert("richieste completate!!!!!")
                     }

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.