質問のコードがいつの間にか編集されたので追記
ajaxでのリクエストでキャッシュ見ているのかもしれません。webサーバーのアクセスログを確認してリクエストが来ているか確認ください。
また、キャッシュを見ていた場合、ajaxでのリクエスト時にキャッシュ無効の指定をしてみてください。
cache: false
ちなみにphp側は質問記載のコードで問題なく動作しました。
※nikuniku12さんへ。一応補足、前段の質問者さん(https://teratail.com/users/dog50)の質問(https://teratail.com/questions/225750)への回答を訂正していますので確認ください。
$ cat -n product.txt
1 id=1,商品=ペン
2 id=2,商品=イス
3 id=3,商品=消しゴム
$ # 1回目実行 ID=2を削除
$ php
<?php
$ID = 2;
$filearr = file('product.txt');
$newLines = array();
foreach ($filearr as $no => $val) {
$cols = explode(",", $val);
$keyval = explode("=", $cols[0]);
if ($keyval[1] == $ID) {
continue;
} else {
$newLines[] = $val;
}
}
$fp = fopen("product.txt", "w");
fwrite($fp, implode("\r", $newLines));
fclose($fp);
$fp=fopen("product.txt","r");
while(($data=fgetcsv($fp,1024))!==false){
$tmp=&$datas[];
foreach($data as $x){
$y=explode("=",$x);
$tmp[trim($y[0])]=trim($y[1]);
}
}
unset($tmp);
fclose($fp);
$data = json_encode($datas);
echo $data;
[{"id":"1","\u5546\u54c1":"\u30da\u30f3"},{"id":"3","\u5546\u54c1":"\u6d88\u3057\u30b4\u30e0"}]
$ # 2回目実行 ID=1を削除
$ php
<?php
$ID = 1;
$filearr = file('product.txt');
$newLines = array();
foreach ($filearr as $no => $val) {
$cols = explode(",", $val);
$keyval = explode("=", $cols[0]);
if ($keyval[1] == $ID) {
continue;
} else {
$newLines[] = $val;
}
}
$fp = fopen("product.txt", "w");
fwrite($fp, implode("\r", $newLines));
fclose($fp);
$fp=fopen("product.txt","r");
while(($data=fgetcsv($fp,1024))!==false){
$tmp=&$datas[];
foreach($data as $x){
$y=explode("=",$x);
$tmp[trim($y[0])]=trim($y[1]);
}
}
unset($tmp);
fclose($fp);
$data = json_encode($datas);
echo $data;
[{"id":"3","\u5546\u54c1":"\u6d88\u3057\u30b4\u30e0"}]
$ # ID=2とID=1を削除した結果
$ cat -n product.txt
1 id=3,商品=消しゴム
初めに product.txt
から読み込んでいるからでは?
質問記載のソースではproduct.txt
は書き換えませんよね。
php
1$filearr = file('product.txt');
2//略
3$fp = fopen("json12.txt", "w");
4//略
5$fp=fopen("json12.txt","r");
6//略