2016-09-12 4 views
-3

私はAJAXを使用してデータベーステーブルを取得しています。私はボタンを押した後に更新テーブルの機能を作って改良しようとしています。Javascript onclickがループでクリックしないで起動する

success: function(result) { 
    for(var i = 0; i < result.length; i++) { 
     document.getElementById('tableT').innerHTML += 
      "<tr>" + 
       "<td>"+result[i]['id']+"</td>" + 
       "<td>"+result[i]['terminalId']+"</td>" + 
       "<td>"+result[i]['departmentId']+"</td>" + 
       "<td>"+result[i]['profileId']+"</td>" + 
       "<td>"+result[i]['created']+"</td>" + 
       "<td>"+result[i]['modified']+"</td>"+ 
       "<td>"+"<div style='margin-bottom:10px; text-align: center;'>"+ 
       "<a class='btn btn-info edit-btn' data-toggle='modal' onclick='"+updApplication(result[i]['id'])+"' data-target='#myModal-44' title='Edit'><i class='fa fa-edit'></i></a>"+ 
        "</div>"+"</td>"+ 
      "</tr>"; 

    } 
}, 

ボタンを押さずにすべてのIDを含むアラートが表示されるのはなぜですか?

function updApplication(id){ 
    alert(id); 
}; 
+3

関数を呼び出すたびに関数を呼び出すのではなく、関数呼び出しではなく、ループして呼び出す必要がない場合は文字列でなければなりません... onclick = 'updApplication(result ["+ i +"] [' id '])' ' – depperm

+0

アラートについて記述するときは、アラートメッセージのテキストを知ることが役に立ちます。しかし、私はデポンプ*が正しい方向を指していると確信しています。 – gus27

答えて

2

あなたは今、あなたはすべてのループ反復でupdApplication()関数を呼び出している、あなたのコードは次のようにする必要があり、引用符で問題を抱えている:

..data-toggle='modal' onclick='updApplication("+result[i]['id']+")' data-target='#myModa.. 

・ホープ、このことができます。

2

マークアップを作成するときに実際に関数を呼び出すため、警告が表示されます。

onclickを関数として文字列として定義してみてください。

"onclick=\"updApplication(" + result[i]['id'] + ")\"..." 
+0

'onclick'が発生したときにローカルの' result'変数にアクセスすることはありません。そして 'id'は引用符で囲むか、単に' .id'を使うべきです。 –

+0

いいお電話が編集されました。 – IrkenInvader

+0

「id」が文字列の場合は、引数の位置に引用符で囲む必要があることに注意してください。数字の場合は問題ありません。 –

関連する問題