購読者が複数のリストを購読できる電子メールシステムがあります。サブスクライバー編集モードでは、サブスクライバーがサブスクライブしているリストがチェックされているチェックボックスを使用して、すべてのリストがリストされているテーブルがあります。
ここまでは順調ですね :)
ただし、フォームの送信時にこれらのチェックボックスを処理する必要があります。これまでのところ、チェックボックスコードは次のようになっています。
<input type="checkbox" name="lists[]" value="<?= $list->id ?>" />
これにより、送信時に次のデータが返されます。
array(2) {
[0]=> string(1) "7"
[1]=> string(1) "8"
}
しかし、ここが「難しい」部分です。いつでも配列をループしてサブスクライバーをそれらのリストに追加できますが、ユーザーはすでにそれらのリストにサブスクライブしている可能性があります。これらのIDは、チェックボックスが操作されていない場合でも送信されます。
私ができると思うのは、利用可能なすべてのリストを配列で取得し、サブスクライブされていないリストとサブスクライブされているリストにフラグを付け、操作されていないリストを無視することです。唯一のことは、これは少し複雑すぎるように聞こえるということです。
これをどのように行いますか?確かにこれを行うためのより簡単な方法があるはずです。肝心なのは、チェックボックスを介して操作されていない場合、サブスクリプションを更新したくないということです。