我需要帮助,以便在后端使用nodejs从jquery数据表中删除数据。我已经尝试了很多东西,但是没有用。我使用相同的方法在表上添加数据,并且可以正常工作。我不明白为什么删除不起作用。我已经尝试了很多代码来解决这个问题,所以请帮助我!
js
router.delete('/',(req,res)=>{
var sil ={barkod: req.body.barkod};
console.log(sil);
connection.query('DELETE FROM stok WHERE barkod=?',sil,(err,rows,fields)=>{
console.log(sil);
if(!err){
res.sendFile(path.join(__dirname + '/secondPage.html'));
}
else{
console.log(err);
}
connection.end();
});
});
HTML
<script>
$(document).ready(function (){
$('#stockManager').DataTable({
responsive: true,
select: true,
ajax : {
url : "http://localhost:3000/secondPage",},
columns: [
{data : "urun_adi"},
{data : "barkod"},
{data : "stok_sayi"},
{data : "satis_fiyati"},
{data : "maliyet"},
{data : "firma_adi"}
],
});
});
</script>
<table id="stockManager" class="display" style="width:100%">
<thead>
<tr>
<th>Adı</th>
<th>Kod</th>
<th>Miktar</th>
<th>Satış Fiyatı</th>
<th>Maliyet</th>
<th>Tedarikçi</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<form id="delete" action="/secondPage" method="delete" >
<div class="col-xs-6 form-group">
<label for="delete_row">Silinecek ürünün barkodunu giriniz:</label>
<input id="delete_row" type="delete_row"class="form-control" name="delete_row">
<button id="delete" type="submit">DELETE PRODUCT</button>
</form>
<script type='text/javascript'>
$('delete').on('click', function(e) {
e.preventDefault();
console.log(barkod);
$.ajax({
type: 'DELETE',
url: '/secondPage/' + barkod,
success: function(){
console.log('timam');
}
});
});</script>
答案 0 :(得分:1)
当您发送DELETE请求时,您没有收到来自正文的数据(如POST)。
在DELETE请求中,应使用参数(类似于GET请求),如下所示:
router.delete('/:barkod', (req,res)=>{
var sil = req.params.barkod;
.
.
.
Express会自动从网址中解析参数。
答案 1 :(得分:0)
您可以尝试像这样将数据传递给请求正文:
"ajax": {
"url": "ajax",
"type": "DELETE",
"data": function ( data ) {
data.barkod = barkod;
}
},