尝试从JSON文件中删除值

时间:2018-06-01 06:43:24

标签: php json ajax slim

我正在尝试使用AJAX请求从json文件中删除值,它不会显示任何错误,但它不会删除该值,有人可以检查它吗?谢谢你!

在AJAX功能之前(用于在“擦除”上插入ID)。 (函数deletee(item)单击激活dlt函数的按钮)

JS:

function deletee(item) {
    var el = document.getElementById('erase');
    el.value = Checker[item].id;
    var r= confirm("Do you want delete it?")
    if (r==true) {
        document.getElementById('rmv').click()
    }

    }

JS AJAX:

        function dlt(item) {
    var iddlt = document.getElementById('erase').value;
    $.ajax({
        type: 'GET',
        url: 'api/delete/'+ iddlt,
        dataType: 'json'
    });

}

PHP:

$app->get('/delete/{id}', function (array $args) {
$jsonContents = file_get_contents('data/data.json');
$id = $args['id'];
$data_array = json_decode($jsonContents, true);
foreach ($data_array as $key => $value) {
    if ($value['id'] == $id) {
        unset($data_array[$key]);
    }
}
$data_array = array_values($data_array);
file_put_contents('data/data.json', json_encode($data_array));

});

2 个答案:

答案 0 :(得分:2)

将ID传递给您的函数和Ajax URL:

function dlt(item_id) {
    $.ajax({
        type: 'GET',
        url: 'api/delete' + item_id,
        dataType: 'json'
    });
}

答案 1 :(得分:0)

在您的网址中添加ID,以使您的API正常运行。

  function dlt() {
    var id= "it should be a valid id";
    $.ajax({
        type: 'GET',
        url: 'api/delete/'+ id,
        dataType: 'json'
    });

}