Проблемы с удалением данных из datatable и mysql с помощью ajax jquery nodejs - PullRequest
0 голосов
/ 24 декабря 2018

Мне нужна помощь для удаления данных из 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>

Ответы [ 2 ]

0 голосов
/ 24 июля 2019

Вы можете попробовать передать данные в тело запроса следующим образом:

 "ajax": {
            "url": "ajax",
            "type": "DELETE",
            "data": function ( data ) {
                data.barkod = barkod;
           }
       },
0 голосов
/ 24 декабря 2018

Когда вы отправляете запрос DELETE, вы не получаете данные из тела (например, POST).

В запросе DELETE вы должны использовать параметры (аналогично запросу GET), например:

router.delete('/:barkod', (req,res)=>{ 
    var sil = req.params.barkod;
.
.
.

Express автоматически проанализирует параметры из URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...