+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

[Javascript - Node js] - Inserire i dati all'interno di una tabella HTML.

  1. #1
    Dev-01 non  in linea Scribacchino
    Buongiorno,

    ho iniziato da poco a dedicarmi allo sviluppo con Javascript e uno dei primi problemi incontrati stato relativo alla visualizzazione dei dati all'interno di una pagina HTML.

    Non volendo appoggiarmi ad ulteriori librerie e nel tentativo di voler scrutare le tecniche adottate da professionisti del settore ho ricercato in rete fin quando ho trovato questo script.

    Le funzioni proposte scansionano l'array e creano la tabella sfruttando le funzioni offerte da javascript puro: poco codice, elegante, nessuna dipendenza.

    Per l'accesso ai dati mi appoggio ad un database MySQL:

    var mysql = require('mysql');
    
    var con = mysql.createConnection({
      host: "localhost",
      user: "my_Usr",
      password: "my_Pwd",
    });
    
    con.connect(function(err) {
      if (err) throw err;
    con.query('use my_DB', function(err){ 
      if (err) throw err;
    });
    con.query('select * from contacts limit 10', function(err, result){ 
      if (err) throw err;
       contacts  = result;
    });
    });
    
    Questo frammento di codice l'ho inserito all'inizio del file build-table.js con l'intento di farlo eseguire precedentemente alle chiamate cos come proposte dall'autore dell'articolo.

    Il codice finale del file build-table.js il seguente:

    var contacts; 
    
    var mysql = require('mysql');
    
    var con = mysql.createConnection({
      host: "localhost",
       user: "my_Usr",
      password: "my_Pwd",
    });
    
    con.connect(function(err) {
      if (err) throw err;
    con.query('use my_DB', function(err){ 
      if (err) throw err;
         // alert('database changed');
    });
    con.query('select * from contacts limit 10', function(err, result){ 
      if (err) throw err;
        contacts= result.toArray; 
    });
    });
    
    
    function generateTableHead(table, data) {
      let thead = table.createTHead();
      let row = thead.insertRow();
      for (let key of data) {
        let th = document.createElement("th");
        let text = document.createTextNode(key);
        th.appendChild(text);
        row.appendChild(th);
      }
    }
    
    function generateTable(table, data) {
      for (let element of data) {
        let row = table.insertRow();
        for (key in element) {
          let cell = row.insertCell();
          let text = document.createTextNode(element[key]);
          cell.appendChild(text);
        }
      }
    }
    
    let table = document.querySelector("table");
    let data = Object.keys(contacts[0]);
    
    generateTable(table, contacts); // generate the table first
    generateTableHead(table, data); // then the head
    
    E' chiaro che quache meccanismo ancora non mi chiaro per cui vi chiedo la cortesia di aiutarmi.

    Grazie

  2. #2
    L'avatar di _alka_
    _alka_ non  in linea Very Important Person
    Quote Originariamente inviato da Dev-01 Visualizza il messaggio
    E' chiaro che quache meccanismo ancora non mi chiaro per cui vi chiedo la cortesia di aiutarmi.
    Ma il problema qual ?
    ℹ️ Leggi di pi su _alka_ ...

  3. #3
    Dev-01 non  in linea Scribacchino
    Scusami hai ragione.
    Non riesco a mostrare i dati provenienti da MySql nella pagina html.
    Lo script trovato in rete funziona correttamente e dalla console di Node js riesco ad ottenere il risultato della query ma non riesco a passare il result come parametro alla funzione che crea la tabella.

  4. #4
    L'avatar di _alka_
    _alka_ non  in linea Very Important Person
    Quote Originariamente inviato da Dev-01 Visualizza il messaggio
    Non riesco a mostrare i dati provenienti da MySql nella pagina html.
    Lo script trovato in rete funziona correttamente e dalla console di Node js riesco ad ottenere il risultato della query ma non riesco a passare il result come parametro alla funzione che crea la tabella.
    Ma ti viene restituito un errore?
    Se s, qual ?
    ℹ️ Leggi di pi su _alka_ ...

  5. #5
    Dev-01 non  in linea Scribacchino
    No, nessun errore. La mia sensazione che o la parte che legge i dati in MySQL non viene eseguita oppure sbaglio a passare il parametro.

  6. #6
    L'avatar di Max.Riservo
    Max.Riservo non  in linea Scribacchino
    con.query('selectrom contacts limit 10', function(err, result)
    
    Magari un errore di copia/incolla ma credo che non sia proprio corretto ...

    Direi che dovrebbe essere qualcosa di simile :
    con.query('select  *  from contacts limit 10', function(err, result)
    
    EDIT : un errore di formattazione del forum ... dimentica la mia risposta.

  7. #7
    L'avatar di _alka_
    _alka_ non  in linea Very Important Person
    Quote Originariamente inviato da Dev-01 Visualizza il messaggio
    La mia sensazione che o la parte che legge i dati in MySQL non viene eseguita oppure sbaglio a passare il parametro.
    Pi che andare a sensazione, prova a fare un debugging, eseguendo magari il programma passo per passo, oppure facendo dei log sulla console per verificare qual l'esito di ogni operazione e il valore che subiscono le variabili man mano che le istruzioni vengono eseguite, in modo da accertarti che il comportamento del programma - fase per fase - sia quello atteso.

    Ciao!
    ℹ️ Leggi di pi su _alka_ ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Inserire dati in DB tramite pagine HTML
    Da antonio_81 nel forum HTML, CSS e JavaScript
    Risposte: 3
    Ultimo Post: 13-11-2020, 03:55
  2. Inserire dati in tabella
    Da Marco2012 nel forum Visual Basic .Net
    Risposte: 11
    Ultimo Post: 25-01-2010, 18:50
  3. Inserire pagina html all'interno del filmato stesso
    Da kekko87_ nel forum Adobe Flash, ActionScript
    Risposte: 2
    Ultimo Post: 09-07-2009, 11:02
  4. [HTML,Javascript]Editare una riga di una tabella
    Da sanfra nel forum HTML, CSS e JavaScript
    Risposte: 8
    Ultimo Post: 18-11-2008, 21:30
  5. Inserire dati in una tabella...
    Da jacknice nel forum Microsoft Word
    Risposte: 35
    Ultimo Post: 20-11-2005, 22:46