Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Estrapolazione dati

  1. #1
    Utente di HTML.it L'avatar di luisa227
    Registrato dal
    Mar 2002
    Messaggi
    2,305

    Estrapolazione dati

    Non so se sia la sezione corretta, in caso negativo vi prego di indirizzarmi nella sezione pi� indicata.

    http://www.albonazionalegestoriambie...ncludiCP=false

    Devo estrarre su un foglio di calcolo (Open Office Calc) alcuni dati dal sito scritto sopra (che, se ho capito bene dall'estensione aspx, usa il linguaggio Asp.net , che io non conosco) e precisamente dovrei estrarre il nome azienda, le categorie (solo alcune) e le scadenze (che si trovano cliccando sul pulsante dettagli). Ovviamente il sito non � mio quindi non ho altri tipi di info rispetto a quanto detto sopra.

    Qualcuno hai idea se sia fattibile un'estrapolazione del genere e come? Grazie
    Le mie richieste qui sul forum sono al 99,9% considerate assurde e senza senso, ma per me un senso lo hanno e gradirei una risposta più seria possibile. Grazie

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    l'estrapolazione è possibile farla con diversi linguaggi (non importa che il sito sia in asp.net), sarà comunque un'operazione complessa ed onerosa (anche in termini di tempo)
    tu che linguaggio dinamico o di programmazione conosci?

    edit

    mi son accorto ora che i dati sono stampati via ajax è json (o qualcosa del genere) il che complica di parecchio a faccenda essendo un sto in .net con librerie proprietarie...
    Ultima modifica di Vincent.Zeno; 17-10-2016 a 01:02

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ma non fa prima col copia ed incolla ?

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Quote Originariamente inviata da djciko Visualizza il messaggio
    ma non fa prima col copia ed incolla ?
    se ne avesse uno solo . Ma se ne deve estrarre 100?c
    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    tira in giu' il mouse, con il tasto sinistro premuto

    ragazzi, io LATO CLIENT non ho idea di come si faccia. Ditemi la sezione piu' adatta in cui devo spostare questo thread.

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Quote Originariamente inviata da djciko Visualizza il messaggio
    ragazzi, io LATO CLIENT non ho idea di come si faccia. Ditemi la sezione piu' adatta in cui devo spostare questo thread.
    probabilmente sarà complicato anche lato client visto che i dati non sono stampati nel codice.
    che fretta hai di spostare?

    edit:
    magari kickstater è la sezione idonea
    Ultima modifica di Vincent.Zeno; 17-10-2016 a 16:10

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Quote Originariamente inviata da luisa227 Visualizza il messaggio
    Non so se sia la sezione corretta, in caso negativo vi prego di indirizzarmi nella sezione pi� indicata.

    http://www.albonazionalegestoriambie...ncludiCP=false

    Devo estrarre su un foglio di calcolo (Open Office Calc) alcuni dati dal sito scritto sopra (che, se ho capito bene dall'estensione aspx, usa il linguaggio Asp.net , che io non conosco) e precisamente dovrei estrarre il nome azienda, le categorie (solo alcune) e le scadenze (che si trovano cliccando sul pulsante dettagli). Ovviamente il sito non � mio quindi non ho altri tipi di info rispetto a quanto detto sopra.

    Qualcuno hai idea se sia fattibile un'estrapolazione del genere e come? Grazie
    Ciao Luisa,
    per fare quello che vuoi tu, visto che ricevi i dati via json, devi chiamare direttamente la fonte dei dati, non la pagina stessa.
    In questo caso (il primo link) se fai un controllo con fiddler ti accorgerai che al click sulla ricerca (o chiamando il link alla pagina con i parametri) i dati vengono caricati da "http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresePerSezioneProvincia", con una chiamata POST. Quindi puoi tranquillamente utilizzare una HttpWebRequest per fare altrettanto. Ad esempio :

    codice:
    public class JSONDataReader
        {
            public class Result
            {
                public Content d { get; set; }
            }
            public class Content
            {
                public int NumeroRecordTotali { get; set; }
                public List<Imprese> ListaImprese { get; set; }
            }
            public class Imprese
            {
                public string Cap { get; set; }
                public string Categorie { get; set; }
                public string CodiceFiscale { get; set; }
                public string Comune { get; set; }
                public string Denominazione { get; set; }
                public string IdImpresa { get; set; }
                public string NumeroIscrizione { get; set; }
                public string Progressivo  { get; set; }
                public string ProvinciaIscrizione{ get; set; }
                public string Sezione{ get; set; }
                public string SiglaProvincia{ get; set; }
                public string Via{ get; set; }
            }
           
            public JSONDataReader(string url,string parameters,string fileName)
            {
                SendRequest<Result>((Result, err) =>
                {
                    if (err != null)
                        return;
                    var imprese = Result.d.ListaImprese;
                    //imprese contiene i dati estrappolati.
    
    
                    Type type = typeof(Imprese);
                    var properties = type.GetProperties();
                    var names = properties.Select(s => s.Name);
                    var header = string.Join(";", names);
                    var sb = new StringBuilder(header);
                    sb.Append(Environment.NewLine);
                    foreach (var impresa in imprese)
                    {
                        foreach (var name in names)
                        {
                            var pi = properties.Single(s => s.Name == name);
                            sb.Append(pi.GetValue(impresa));
                            sb.Append(";");
                        }
                        sb.Append(Environment.NewLine);
                    }
                    File.WriteAllText(fileName, sb.ToString());
                },
                url,
                parameters);
            }
    
    
            public static void SendRequest<T>(Action<T, Exception> action, string url, string objJson)
            {
                string responseString = string.Empty;
                byte[] byteArray = Encoding.UTF8.GetBytes(objJson);
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json";
                request.BeginGetRequestStream(new AsyncCallback((asynchronousResult) =>
                {
                    HttpWebRequest req1 = (HttpWebRequest)asynchronousResult.AsyncState;
                    Stream postStream = req1.EndGetRequestStream(asynchronousResult);
                    postStream.Write(byteArray, 0, objJson.Length);
                    postStream.Dispose();
                    req1.BeginGetResponse(new AsyncCallback((asynchronousResult1) =>
                    {
                        try
                        {
                            HttpWebRequest req2 = (HttpWebRequest)asynchronousResult1.AsyncState;
                            HttpWebResponse response = (HttpWebResponse)req2.EndGetResponse(asynchronousResult1);
                            Stream streamResponse = response.GetResponseStream();
                            StreamReader streamRead = new StreamReader(streamResponse);
                            responseString = streamRead.ReadToEnd();
                            T result = (T)Newtonsoft.Json.JsonConvert.DeserializeObject(responseString, typeof(T));
                            action(result, null);
                            streamResponse.Dispose();
                            streamRead.Dispose();
                            response.Dispose();
                        }
                        catch (WebException e)
                        {
                            action(default(T), e);
                        }
    
    
                    }), request);
                }), request);
            }
        }
    Questa classe recupera i dati delle imprese e crea un csv contenente i dati incolonnati. E la usi così:
    codice:
    new JSONDataReader(
                    "http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresePerSezioneProvincia",
                    "{\"lang\":\"it\",\"siglaProvincia\":\"SS\",\"idRegione\":\"20\",\"includiCP\":\"false\",\"paginaCorrente\":\"1\",\"risultatiPerPagina\":\"50\"}",
                    "test.csv");
    Ultima modifica di U235; 17-10-2016 a 19:54

  8. #8
    Utente di HTML.it L'avatar di luisa227
    Registrato dal
    Mar 2002
    Messaggi
    2,305
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Ciao Luisa,
    per fare quello che vuoi tu, visto che ricevi i dati via json, devi chiamare direttamente la fonte dei dati, non la pagina stessa.
    In questo caso (il primo link) se fai un controllo con fiddler ti accorgerai che al click sulla ricerca (o chiamando il link alla pagina con i parametri) i dati vengono caricati da "http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresePerSezioneProvincia", con una chiamata POST. Quindi puoi tranquillamente utilizzare una HttpWebRequest per fare altrettanto. Ad esempio :

    codice:
    public class JSONDataReader
        {
            public class Result
            {
                public Content d { get; set; }
            }
            public class Content
            {
                public int NumeroRecordTotali { get; set; }
                public List<Imprese> ListaImprese { get; set; }
            }
            public class Imprese
            {
                public string Cap { get; set; }
                public string Categorie { get; set; }
                public string CodiceFiscale { get; set; }
                public string Comune { get; set; }
                public string Denominazione { get; set; }
                public string IdImpresa { get; set; }
                public string NumeroIscrizione { get; set; }
                public string Progressivo  { get; set; }
                public string ProvinciaIscrizione{ get; set; }
                public string Sezione{ get; set; }
                public string SiglaProvincia{ get; set; }
                public string Via{ get; set; }
            }
           
            public JSONDataReader(string url,string parameters,string fileName)
            {
                SendRequest<Result>((Result, err) =>
                {
                    if (err != null)
                        return;
                    var imprese = Result.d.ListaImprese;
                    //imprese contiene i dati estrappolati.
    
    
                    Type type = typeof(Imprese);
                    var properties = type.GetProperties();
                    var names = properties.Select(s => s.Name);
                    var header = string.Join(";", names);
                    var sb = new StringBuilder(header);
                    sb.Append(Environment.NewLine);
                    foreach (var impresa in imprese)
                    {
                        foreach (var name in names)
                        {
                            var pi = properties.Single(s => s.Name == name);
                            sb.Append(pi.GetValue(impresa));
                            sb.Append(";");
                        }
                        sb.Append(Environment.NewLine);
                    }
                    File.WriteAllText(fileName, sb.ToString());
                },
                url,
                parameters);
            }
    
    
            public static void SendRequest<T>(Action<T, Exception> action, string url, string objJson)
            {
                string responseString = string.Empty;
                byte[] byteArray = Encoding.UTF8.GetBytes(objJson);
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json";
                request.BeginGetRequestStream(new AsyncCallback((asynchronousResult) =>
                {
                    HttpWebRequest req1 = (HttpWebRequest)asynchronousResult.AsyncState;
                    Stream postStream = req1.EndGetRequestStream(asynchronousResult);
                    postStream.Write(byteArray, 0, objJson.Length);
                    postStream.Dispose();
                    req1.BeginGetResponse(new AsyncCallback((asynchronousResult1) =>
                    {
                        try
                        {
                            HttpWebRequest req2 = (HttpWebRequest)asynchronousResult1.AsyncState;
                            HttpWebResponse response = (HttpWebResponse)req2.EndGetResponse(asynchronousResult1);
                            Stream streamResponse = response.GetResponseStream();
                            StreamReader streamRead = new StreamReader(streamResponse);
                            responseString = streamRead.ReadToEnd();
                            T result = (T)Newtonsoft.Json.JsonConvert.DeserializeObject(responseString, typeof(T));
                            action(result, null);
                            streamResponse.Dispose();
                            streamRead.Dispose();
                            response.Dispose();
                        }
                        catch (WebException e)
                        {
                            action(default(T), e);
                        }
    
    
                    }), request);
                }), request);
            }
        }
    Questa classe recupera i dati delle imprese e crea un csv contenente i dati incolonnati. E la usi così:
    codice:
    new JSONDataReader(
                    "http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresePerSezioneProvincia",
                    "{\"lang\":\"it\",\"siglaProvincia\":\"SS\",\"idRegione\":\"20\",\"includiCP\":\"false\",\"paginaCorrente\":\"1\",\"risultatiPerPagina\":\"50\"}",
                    "test.csv");
    Ciao U235, grazie davvero per la risposta molto professionale. Scusa l'ignoranza ma non conosco bene json. La classe da te postata la posso mettere direttamente in una pagina PHP (uso questo linguaggio)? grazie ancora
    Le mie richieste qui sul forum sono al 99,9% considerate assurde e senza senso, ma per me un senso lo hanno e gradirei una risposta più seria possibile. Grazie

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    venghino signori venghinooo (qualcuno ha domande su java ? )
    scherzo eh.

    comunque mi correggo e chiedo venia a Luisa: non sapevo neanche io si potesse fare;

    @luisa, U235 ha scritto una classe in C# e poi l'ha richiamata
    Ultima modifica di djciko; 18-10-2016 a 00:37

  10. #10
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Quote Originariamente inviata da luisa227 Visualizza il messaggio
    Ciao U235, grazie davvero per la risposta molto professionale. Scusa l'ignoranza ma non conosco bene json. La classe da te postata la posso mettere direttamente in una pagina PHP (uso questo linguaggio)? grazie ancora
    Buongiorno,
    figurati...
    purtroppo non avevo letto che non lo vuoi in asp.net, ed io non ti posso aiutare con il PHP. Infatti il codice che ho scritto funziona in asp.net.
    Se poi tu hai uno spazio misto (win+linux o anche da qualche altra parte un win), potesti comunque mettere questo e chiamare con ajax le tue webapi da javascript (come nella pagina postata sotto (.html)), anche se usi php.

    @djciko
    a dire il vero hai ragione... il mio codice era un esempio, ma in effetti per farlo girare in asp.net andrebbe ritoccato.
    Sperando di fare cosa gradita, anche se un po lunghetto, butto giù una bozza.

    Il lavoro sarebbe: tuaPagina->chiamata ajax tuo server (webapi)->chiamata server remoto->elaborazione sul server->risultato alla tuaPagina

    WebApi:
    codice:
    public class JSonReaderController : ApiController
        {
            string url = "http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/{0}";
            string parameters = "{\"lang\":\"it\",\"siglaProvincia\":\"SS\",\"idRegione\":\"20\",\"includiCP\":\"false\",\"paginaCorrente\":\"1\",\"risultatiPerPagina\":\"50\"}";
    
    
            [HttpGet]//restituisce un file .csv contenente le imprese (download, Imprese.csv) [/api/jsonreader/csv]
            public HttpResponseMessage CSV()
            {
                //imposto il tipo radice (RootImpresa) ricavato dal json (vedi in basso), l'url (formato da indirizzo + metodo che restitiusce il tipo specificato),
                //e i parametri necessari all'interrogazione (in base al metodo del sito remoto)
                //i parametri necessari si possono scoprire con fiddler, così come il metodo corretto da chiamare per avere i dati desiderati
                var res = Task.Run(() => JSonReader<RootImpresa>.GetItems(string.Format(url,"GetImpresePerSezioneProvincia"), parameters)).Result.d.ListaImprese;
                var properties = typeof(Impresa).GetProperties();
                var names = properties.Select(s => s.Name);
                var header = string.Join(";", names);
                var sb = new StringBuilder(header);
                sb.Append(Environment.NewLine);
                foreach (var impresa in res)
                {
                    foreach (var property in properties)
                    {
                        sb.Append(property.GetValue(impresa));
                        sb.Append(";");
                    }
                    sb.Append(Environment.NewLine);
                }
                var csv = sb.ToString();
                HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
                result.Content = new StringContent(csv);
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                result.Content.Headers.ContentDisposition.FileName = "Imprese.csv";
                return result;
            }
    
    
            [HttpGet]//restituisce un json contenente le imprese [/api/jsonreader/Imprese]
            public IEnumerable<Impresa> Imprese()
            {
                //imposto il tipo radice (RootImpresa) ricavato dal json (vedi in basso), l'url (formato da indirizzo + metodo che restitiusce il tipo specificato),
                //e i parametri necessari all'interrogazione (in base al metodo del sito remoto)
                //i parametri necessari si possono scoprire con fiddler, così come il metodo corretto da chiamare per avere i dati desiderati
                return Task.Run(() => JSonReader<RootImpresa>.GetItems(string.Format(url, "GetImpresePerSezioneProvincia"), parameters)).Result.d.ListaImprese;
            }
    
    
            [HttpGet]//restituisce un json contenente le imprese [/api/jsonreader/Imprese]
            public IEnumerable<Categorielista> DettaglioImpresa(int id)
            {
                //imposto il tipo radice (RootDettaglio) ricavato dal json (vedi in basso), l'url (formato da indirizzo + metodo che restitiusce il tipo specificato),
                //e i parametri necessari all'interrogazione (in base al metodo del sito remoto). In questo caso varia l'id dell'impresa della quale 
                //si vuole visualizzare i dettagli
                //i parametri necessari si possono scoprire con fiddler, così come il metodo corretto da chiamare per avere i dati desiderati
                return Task.Run(() => JSonReader<RootDettaglio>.GetItems(string.Format(url, "GetImpresaDettaglioConsorzio"),
                    "{\"lang\":\"it\",\"idImpresa\":\"" + id + "\"}")).Result.d.CategorieLista;
            }
        }
        public class JSonReader<T>
        {
            public async static Task<T> GetItems(string url, string parameters)
            {
                return await AsyncSendRequest(url, parameters);
            }
            public static async Task<T> AsyncSendRequest(string url, string parameters)
            {
                byte[] byteArray = Encoding.UTF8.GetBytes(parameters);
                var request = WebRequest.CreateHttp(url);
                request.Method = "POST";
                request.ContentType = "application/json";
                Stream postStream = request.GetRequestStream();
                postStream.Write(byteArray, 0, parameters.Length);
                postStream.Dispose();
                object state = null; 
                var task = Task<WebResponse>.Factory.FromAsync(
                    request.BeginGetResponse,
                    request.EndGetResponse,
                    state);
                using (var response = (HttpWebResponse)(await task))
                {
                    Stream streamResponse = response.GetResponseStream();
                    StreamReader streamRead = new StreamReader(streamResponse);
                    var responseString = streamRead.ReadToEnd();
                    T result = (T)Newtonsoft.Json.JsonConvert.DeserializeObject(responseString, typeof(T));
                    return result;
                }
            }
        }
    
    
        /******************************************************************************************************/
        //queste classi in basso sono generate automaticamente a partire dal json restituito dalle due chiamate:
        //http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresePerSezioneProvincia
        //e
        //http://www.albonazionalegestoriambientali.it/Services/GetRicerche.asmx/GetImpresaDettaglioConsorzio/id 
        //da visual studio copiare il json e poi: menu modifica->incolla speciale->incolla json come classi
        public class RootImpresa
        {
            public ContainerImpresa d { get; set; }
        }
    
    
        public class ContainerImpresa
        {
            public string __type { get; set; }
            public int NumeroRecordTotali { get; set; }
            public Impresa[] ListaImprese { get; set; }
            public string NumeroRecordTotaliLabel { get; set; }
        }
        public class Impresa
        {
            public int Progressivo { get; set; }
            public int IdImpresa { get; set; }
            public string SiglaProvincia { get; set; }
            public string Comune { get; set; }
            public string Via { get; set; }
            public string Cap { get; set; }
            public string CodiceFiscale { get; set; }
            public string Denominazione { get; set; }
            public string Sezione { get; set; }
            public string Categorie { get; set; }
            public string ProvinciaIscrizione { get; set; }
            public string NumeroIscrizione { get; set; }
        }
    
    
        public class RootDettaglio
        {
            public D d { get; set; }
        }
        public class D
        {
            public string __type { get; set; }
            public object[] ListaImpreseConsorzio { get; set; }
            public string Cer { get; set; }
            public string Tipologie { get; set; }
            public string CerCP { get; set; }
            public bool HasCer { get; set; }
            public bool HasTipologie { get; set; }
            public bool HasCerCP { get; set; }
            public Categorielista[] CategorieLista { get; set; }
            public int IdImpresa { get; set; }
            public string SiglaProvincia { get; set; }
            public string Comune { get; set; }
            public string Via { get; set; }
            public string Cap { get; set; }
            public string CodiceFiscale { get; set; }
            public string Denominazione { get; set; }
            public string Sezione { get; set; }
            public string Categorie { get; set; }
            public string ProvinciaIscrizione { get; set; }
            public string NumeroIscrizione { get; set; }
        }
        public class Categorielista
        {
            public string SiglaCategoria { get; set; }
            public string TipoIscrizione { get; set; }
            public string Classe { get; set; }
            public string DataIscrizione { get; set; }
            public string DataScadenza { get; set; }
            public string Stato { get; set; }
            public string SospensioneCausale { get; set; }
            public string SospensioneDal { get; set; }
            public string SospensioneAl { get; set; }
            public string SottoCategoria { get; set; }
        }
    come scritto nei commenti, le classi le ricavo semplicemente scaricando il json (anche dal browser), copiandolo e incollandolo come descritto da dentro visual studio.

    A questo punto abbiamo le nostre webapi che rendono trasparenti le fonti dei dati sottostanti, e possiamo richiamarle come se i dati risiedessero sul server:
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    </head>
    <body>
        <ul>
            <li><a href="/api/JSonReader/imprese">Lista imprese json</a></li>
            <li><a href="/api/JSonReader/CSV">download csv</a></li>
        </ul>
        <button onclick="Load()">Carica Imprese qui</button>
        <div id="list"></div>
        <script type="text/javascript">
           function Load()
           {
               var div = document.getElementById('list');
               div.innerHTML = "<br>Sto caricando";
               $.ajax({
                   contentType: "application/json; charset=utf-8",
                   url: '/api/JSonReader/imprese',
                   type: 'GET',
                   dataType: 'json',
                   success: function (data, textStatus, xhr) {
                       div.innerHTML = "";
                       $.each(data, function (index, item) {
                           var button = document.createElement('button');
                           var ul = document.createElement('ul');                       
                           $.each(item, function (i, subItem) {
                               var li = document.createElement('li');                           
                               li.innerHTML = subItem;
                               ul.appendChild(li);
                           });
                           button.innerHTML = "Dettaglio";
                           button.addEventListener("click", function () { LoadDetails(item.IdImpresa) });
                           ul.appendChild(button);
                           div.appendChild(ul);
                       });
                   },
                   error: function (error, textStatus, errorThrown) {
                       alert(textStatus);
                   }
               });
           }
           function LoadDetails(id) {
               var div = document.getElementById('list');
               div.innerHTML = "<br>Sto caricando";
               $.ajax({
                   contentType: "application/json; charset=utf-8",
                   url: '/api/JSonReader/DettaglioImpresa/'+id,
                   type: 'GET',
                   dataType: 'json',
                   success: function (data, textStatus, xhr) {
                       div.innerHTML = "";
                       $.each(data, function (index, item) {
                           var ul = document.createElement('ul');
                           $.each(item, function (i, subItem) {
                               var li = document.createElement('li');
                               li.innerHTML = subItem;
                               ul.appendChild(li);
                           });
                           div.appendChild(ul);
                       });
                   },
                   error: function (error, textStatus, errorThrown) {
                       alert(textStatus);
                   }
               });
           }
        </script>
    </body>
    </html>

    in pratica possiamo trattare i dati come meglio vogliamo, la fonte interna si trova al di sotto delle nostre webapi. Possiamo creare e scaricare un file tramite il suo url (anche direttamente dal browser), impaginare ecc.

    Spero sia utile a qualcuno che legge o leggerà questo post, anche se non risponde all'esigenza di luisa.
    Ultima modifica di U235; 18-10-2016 a 09:46

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.