Как работать с массивом из ajax в php - PullRequest
0 голосов
/ 11 июля 2019

Я получаю массив с идентификаторами из моей HTML-таблицы (на основе базы данных) (только если они выбраны). Теперь я хочу отправить этот массив (ajax) в мой php-скрипт, чтобы удалить записи с этими идентификаторами.но это не работает.

    var $rows = [];
    $(function() {
        console.log( "ready!" );
        // start plugin
        $('#myTable').TableSelection({
                sort : false, // sort or not (true | false)
                status : 'multiple', // single or multiple selection (default is 'single')
            }, function(obj){ // callback function return selected rows array
                $rows = obj.rows;
                console.log($rows);
        });

    });

            // Get HTML Object from row in array
        function showSelectedRow(array){
        $.each(array, function(i, row){
            $('#info').append('<li>'
                + $('#myTable').RowValue(row).find('td').eq(0).html() // HTML Object
                + '</li>');
              });
        var deleteIds = array.map(function(currentValue) {
          return $('#myTable').RowValue(currentValue).find('td').eq(0).html();
        });

       $.ajax({ 
       type: "POST", 
       url: "includes/datenloeschen.php", 
       data: { kvcArray : deleteIds}, 
       success: function() { 
        alert("Success"); 
        } 
}); 
        console.log(deleteIds[0])
    }
<?php
    include_once 'dbh.inc.php';

    $artid = ['kvcArray'];
    /* $artid = 1; */

    $sql = "DELETE FROM artikel WHERE id= $artid;";

    mysqli_query($conn, $sql);

    header("Location: ../index.php?daten=success");

появляется предупреждение об успехе.Если я установлю $ artid, он будет работать, поэтому проблема с kvcArray (ajax) должна стать проблемой.В deleteIds есть записи.

1 Ответ

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

kvcArray - это массив значений.

$artid = ['kvcArray'];  // here you assign array with one element `'kvcArray'` to `$artid` variable.

Должно быть как минимум:

$artid = $_POST['kvcArray']; // as your ajax-method is POST.

Далее - вы не можете просто передайте массив в текст запроса.В вашем случае удаление должно быть выполнено с помощью запроса:

DELETE FROM artikel WHERE id IN (1,2,3)  // where 1,2,3 are values from your `$artid`

Таким образом, пропуская проверки, что массив не пустой и имеет допустимые числа (я полагаю, id это число), сценарий может быть:

$sql = "DELETE FROM artikel WHERE id IN (" . implode(', ', $artid)  . ")";
mysqli_query($conn, $sql);
header("Location: ../index.php?daten=success");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...