データの追加

Storage

とりあえず既存のデータを取得します

let mistakes = JSON.parse( localStorage.getItem('mistakes') ) || [];

キーに何も入っていないことを考慮します。

データが含まれているかどうか確認します

<?php foreach ($ids as $id): ?>
if ( !mistakes.includes(<?php echo $id; ?>) ) { ... }
<?php endforeach; ?>

データをプッシュします

if ( ... ) {
   mistakes.push(<?php echo $id ?>);
}

データをセットします

<?php endforeach; ?>
localStorage.setItem('mistakes', JSON.stringify(mistakes));

【失敗例】

<?php foreach ($ids as $id): ?>
let mistakes = JSON.parse( localStorage.getItem('mistakes') ) || [];
if ( !mistakes.includes($id) ) {
    localStorage.setItem( 'misktakes', JSON.stringify([...mistake, $id]) );
}
<?php endforeach; ?>

let mistakesはforeachの外に出してあげないと、

「Identifier ‘mistakes’ has already been declared」(繰り返し宣言してるぞエラー)

というエラーが発生し、最初の$idしか保存されません。

BACK