удалить запись или обновить как пустой (то есть "") файл JSON - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь просто создать функцию удаления , чтобы просто удалить найденную запись в моем файле JSON.

Пока что ниже успешно находится строка (то есть запись), которую я хочу удалить / delete, или обновить с пустым " " - однако мне трудно записать ее обратно в JSON file Удалено ... Идет загрузка, и я нахожу строку, которую хочу удалить, просто отлично.

Я считаю, что это вопрос JavaScript и я здесь неправильно, так как я использую ../processor.php для записи новых записей в файл JSON очень хорошо.

  // Delete Function
  dele.addEventListener('click', ()=>{
    let e= document.getElementById("dropdown-of-entry");
    let slctn= e.value;
    console.log(slctn);

    fetch(urld)  
    .then(
      function(response) {  
        response.json().then(function(data) {  

          let gData = JSON.stringify(data)
          let jsonF = JSON.parse(gData);

          let findtempto;
          let jsonUpdt;
          let jsonUpdtd;
        for (let i = 0; i < jsonF.length; i++) {
            findtempto = jsonF[i].styleName;
            if (findtempto === slctn) { 
                console.log(jsonF[i]); // This successfully finds the line I want to delete
                //delete jsonF[i]; // No avail
                jsonF[i] = " "; // Am trying this next
                // I have also tried moving the ajax call here, and lines above it
             }
           }    
        });

        jsonUpdt = JSON.stringify(jsonF);
        console.log(jsonUpdt);

        jsonUpdtd = JSON.parse(jsonUpdt);
        console.log(jsonUpdtd);

        $.ajax({
          url: './php/data/processor.php',
          type: 'POST',
          data: { template: jsonUpdtd },
          success: function(msg) {
              console.log('updated/deleted data');
          }               
        });  
      }  
    )  
    .catch(function(err) {  
      console.error('Fetch Error -', err);  
    });
  });

1 Ответ

1 голос
/ 24 марта 2020

Используйте array.filter(), чтобы сохранить элементы в массиве, которые соответствуют критериям.

jsonF = jsonF.filter(e => e.styleName != slctn);

Замена объекта строкой, подобной " ", вызовет проблемы позже, так как остальная часть кода ожидает массив для хранения объектов.

...