Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用PHP和AJAX删除JSON文件中的数组_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

Javascript 使用PHP和AJAX删除JSON文件中的数组

Javascript 使用PHP和AJAX删除JSON文件中的数组,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,您好,我正在看如何根据ID值删除json文件中的数组 这是我的json文件 [ { date: "3/7/2017", title: "kjjnkjnjn", category: "Automobile", ville: "Labas", decription: "nlknlknklnkjlnkl", mail: "mathieufrobert@yahoo.fr", telep

您好,我正在看如何根据ID值删除json文件中的数组

这是我的json文件

[
    {
        date: "3/7/2017",
        title: "kjjnkjnjn",
        category: "Automobile",
        ville: "Labas",
        decription: "nlknlknklnkjlnkl",
        mail: "mathieufrobert@yahoo.fr",
        telephone: "0777878988",
        pseudo: "kknklnkln",
        prix: "10",
        mdp: "0000",
        id: "5959785fde3bc26610"
    },
    {
        date: "3/7/2017",
        title: "kjjnkjnjn",
        category: "Automobile",
        ville: "Labas",
        decription: "nlknlknklnkjlnkl",
        mail: "mathieufrobert@yahoo.fr",
        telephone: "0777878988",
        pseudo: "kknklnkln",
        prix: "10",
        mdp: "0000",
        id: "6848675fde3bc26610"
    },{
        date: "3/7/2017",
        title: "kjjnkjnjn",
        category: "Automobile",
        ville: "Labas",
        decription: "nlknlknklnkjlnkl",
        mail: "mathieufrobert@yahoo.fr",
        telephone: "0777878988",
        pseudo: "kknklnkln",
        prix: "10",
        mdp: "0000",
        id: "5737554fde3bc26610"
    }
]
这是我的php文件(它是另一个php的副本)

这就是我想要的json文件的样子

[
    {
        date: "3/7/2017",
        title: "kjjnkjnjn",
        category: "Automobile",
        ville: "Labas",
        decription: "nlknlknklnkjlnkl",
        mail: "mathieufrobert@yahoo.fr",
        telephone: "0777878988",
        pseudo: "kknklnkln",
        prix: "10",
        mdp: "0000",
        id: "6848675fde3bc26610"
    },{
        date: "3/7/2017",
        title: "kjjnkjnjn",
        category: "Automobile",
        ville: "Labas",
        decription: "nlknlknklnkjlnkl",
        mail: "mathieufrobert@yahoo.fr",
        telephone: "0777878988",
        pseudo: "kknklnkln",
        prix: "10",
        mdp: "0000",
        id: "5737554fde3bc26610"
    }
]

提前感谢您的帮助。

我建议您使用ES6 Array.prototype.filter

const deletePropWithId = (array, id) => {
  return array.filter((obj) => obj.id[id] !== undefined);
}

首先,您将阅读PHP中的JSON,如下所示:

<?php

$id   = $_POST['id'];

// stop if it's non-numeric
if (!preg_match('/^\d+$/', $id)) {
  die('Don’t hack us.');
}

$file = 'the.json';
$data = file_get_contents($file);
$list = json_decode($data);

// now, we will search the ID
for ($i = 0; $i < count($list); $i++) {

  // if we found it,
  if ($list[$i]->id === $id) {
    // we remove it
    unset($list[$i]);
    break;
  }
}

// make the numeric array consecutive again
$list = array_values($list);

// write the resulting JSON to disk
$fp = fopen($file, 'w');
fwrite($fp, json_encode($list));
fclose($fp);

代码的哪一部分需要帮助?php部分或javascript?javascript和php因为它不起作用,我可能遗漏了一些东西。如果文件中的json是完全相同的,我会说第一步是将其格式化为正确的json格式。日期、头衔。邮件应该用双引号包装。您可以在此处检查json的验证您的json文件无效json您能更准确地说明这段代码应该放在哪里吗?谢谢这对我有用=)删除另一个数组时,我如何删除它前面的计数?谢谢你的意思是什么?我的文件是这样的:[{“日期”:“2017,07,01”,“标题”:“zeezerzrez”},{“日期”:“2017,07,03”,“标题”:“zeezerzrez”}]但是在我使用代码后,我的文件看起来是这样的:[1:{“日期”:“2017,07,01”,“标题”:“zeezerzrez”},2:{“日期”:“2017,07,03”,“标题”:“zeezerzrez”}]前面有一个数字,我不能在ajax中使用foreach代码,我已经修改了我的代码来解决这个问题。请参见注释为
//使数字数组再次连续的行。原因记录在此处:
const deletePropWithId = (array, id) => {
  return array.filter((obj) => obj.id[id] !== undefined);
}
<?php

$id   = $_POST['id'];

// stop if it's non-numeric
if (!preg_match('/^\d+$/', $id)) {
  die('Don’t hack us.');
}

$file = 'the.json';
$data = file_get_contents($file);
$list = json_decode($data);

// now, we will search the ID
for ($i = 0; $i < count($list); $i++) {

  // if we found it,
  if ($list[$i]->id === $id) {
    // we remove it
    unset($list[$i]);
    break;
  }
}

// make the numeric array consecutive again
$list = array_values($list);

// write the resulting JSON to disk
$fp = fopen($file, 'w');
fwrite($fp, json_encode($list));
fclose($fp);