2017-05-03 10 views
0

タブボタンをクリックしてSQLデータでテーブルを更新しようとしていますが、動作しません。 app.jsでノードJS。 Jade/Pugページがレンダリングされない

:index.pugで

app.post('/updateTable', function(req, res) { 
    var db = new sqlite3.Database('users.db'); 

    db.serialize(function() { 
    db.all("SELECT * FROM user_info", function(err, rows) { 
     res.render('index', { title: 'Student Registration', rows: rows }); 
    }); 
    }); 

    db.close(); 
}); 

:CLIEN側JSにおいて

#tabs-2.box 
    table 
    thead 
     tr#tabTit 
     th Name 
     th Birthday 
     th EduID 
     th EduGroup 
     th Phone 
     th Email 
    tbody 
     - for (var item in rows) 
      tr 
      td= rows[item].name 
      td= rows[item].date 
      td= rows[item].eduID 
      td= rows[item].gr 
      td= rows[item].phone 
      td= rows[item].email 

$(document).ready(function() { 
$('#tabs, #tabs-2').tabs({ 
     activate: function(event, ui) { 
       $.ajax({ 
        type: 'POST', 
        url: '/updateTable' 
       }); 
     } 
    }); 
}); 

ポスト要求がsuccefully処理されるが、 " res.render "は機能しません。

ここで私はうんざりしていますか?

P.S.申し訳ありません私の英語のため

答えて

0

!これはajax-requestのsuccess-handlerで動作します。動的にテーブルを更新しています。

答えを

db.all("SELECT * FROM user_info", function(err, rows) { 
    res.render('table', { rows: rows }); 
}); 

成功-ハンドラ

$.ajax({ 
    type: 'GET', 
    url: '/updateTable', 
    success: function(data) { 
       $('#tabs-2').html(data); 
      } 
}); 
0

投稿要求が処理されていますか? activate関数を宣言していますが、決して呼び出すことはありません。

これが問題でない場合は、res.renderを返すようにしてください。それは次のようになります。最後に

return res.render('index', { title: 'Student Registration', rows: rows });

+0

おかげパグページ 'テーブル' をレンダリング!私はコンソールでそのメッセージがタブをクリックするとき:POST/updateTable 200 79.484 ms - 1903.そしてres.renderの前に戻ることはとにかく役に立たなかった。 –

+0

'' 'console.log(行)' ''あなたのres.renderの上の行? – DrunkDevKek

+0

また、db.allクエリーの下の最初の行(コールバックの最初の行)を ''(エラー)console.log(エラー) '' 'に追加することもできます。 – DrunkDevKek

関連する問題