2016-03-19 11 views
0

Bir javascript nesnesine sahibim, veri tabanına yeni bir satır eklemeye çalışıyorum. Bir sütun bir alandır ve diğer sütun bir düğme içermelidir.Veritabanına yeni bir satırda düğme ekleme, tanımsız alma

var appendLastCategory = function() { 
    var obj = { 
     id: 'jh2i4h34ubi43', 
     name: 'Lolo', 
    }; 
    $('#categoriesList').DataTable().row.add({ 
     name: obj.name, //First column 
     mRender: function() { //Second column 
      return "<a class='md-btn' onClick='deleteCategory(this, &quot;" + obj.id + "&quot;)'>Delete</a>"; 
     } 
    }).draw(); 
}; 

Sonra "Sil" düğmesini tıkladığınızda, Im 'id' değeri 'tanımsız' alma. Ve nedenini bilmiyorum, çünkü tabloyu başlangıçtaki verilerle doldurduğumda ve 'mRender'ı çoğunlukla aynı şekilde kullanarak çalışıyorum.

var deleteCategory = function(element, id) { 
    console.log(id); 
    //Blah blah, all the code to delete on backend and remove the row 
}; 
+0

Ortaya çıkan işaretlemede, ortaya çıkan 'onClick' özniteliklerinin listelendiğini doğrulayabilir misiniz? yani 'deleteCategory (bu," jh2i4h34ubi43 ")' –

+0

Koddaki 'id' kelimesini yazdığımda bile tanımlanmamış göstermeye devam ettiğimi onaylayabilirim. –

cevap

0

ben bu yardımcı olabilir umut: cevap için

var deleteCategory = function(element, id) { 
 
    alert(id); 
 
    //Blah blah, all the code to delete on backend and remove the row 
 
}; 
 
var appendLastCategory = function() { 
 
    var obj = { 
 
    id: 'jh2i4h34ubi43', 
 
    name: 'Lolo', 
 
    }; 
 
    $('#categoriesList').DataTable().row.add({ 
 
    '0': obj.name, //First column 
 
    '1': "<a href='#' class='btn btn-info' role='button' onClick='deleteCategory(this, &quot;" + obj.id + "&quot;)'>Delete</a>", 
 
    }).draw(); 
 
}; 
 

 
$(function() { 
 
    appendLastCategory(); 
 
});
<script src="http://code.jquery.com/jquery-1.12.1.min.js"></script> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
 

 
<link href="http://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css" rel="stylesheet"> 
 
<script src="http://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script> 
 

 

 

 
<table id="categoriesList" class="display" cellspacing="0" width="100%"> 
 
    <thead> 
 
    <tr> 
 
     <th>name</th> 
 
     <th>button</th> 
 
    </tr> 
 
    </thead> 
 
    <tfoot> 
 
    <tr> 
 
     <th>name</th> 
 
     <th>button</th> 
 
    </tr> 
 
    </tfoot> 
 
    <tbody> 
 
    <tr> 
 
     <td>Tiger Nixon</td> 
 
     <td>Tiger Nixon</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Garrett Winters</td> 
 
     <td>Tiger Nixon</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Ashton Cox</td> 
 
     <td>Tiger Nixon</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

teşekkürler! Çözdüm.

var datax = [{ 
     id: '67i67i634r2r', 
     name: 'Lala', 
    },{ 
     id: 'g45y45y657t3', 
     name: 'Lele', 
    }]; 
$('#categoriesList').DataTable({ 
    "data": datax, 
    "columns": [ 
     { data: "name" }, { 
      render: function(o, type, data) { 
       return "<a class='md-btn' onClick='deleteCategory(this, &quot;" + data.id + "&quot;)'>Delete</a>"; 
      } 
     } 
    ] 
}); 

nihai şeyi de sadece bu şekilde javascript nesne ekleme çözüldü var:

DataTable başlatmak için, bu aşağıdaki kodudur. Umarım bu daha çok insana yardım eder.

var appendLastCategory = function() { 
    var obj = { 
     id: 'jh2i4h34ubi43', 
     name: 'Lolo', 
    }; 
    $('#categoriesList').DataTable().row.add(obj).draw(); 
};