私は既存のウェブサイトで作業しようとしていますが、バグを見つけましたが、なぜバグなのか、それを回避する方法がわかりません。HTMLチェックボックスの要素は、チェックされている場合にのみ送信されますか?
ウェブサイトは基本的に、ある都市のリース用の商業用不動産のリストです。データベースからリストを取得し、それぞれからオブジェクトを作成するクラスがあります。各オブジェクトには、そのプロパティに関連付けられたイメージの配列があります。
ユーザーがリスティングを編集すると、編集ページに画像のリストが表示され、その横に「削除」チェックボックスが表示されます。チェックボックスの名前はすべて同じです。したがって、チェックボックスはサーバーに送信されると、削除されるイメージの配列を取得します。
このオン/オフ値の配列(on = delete)がアプリにあり、配列内の各値のインデックスがリスティングオブジェクト内の画像のインデックスに対応しているとします。いずれかの値が "on"の場合、その "on"値に対応するイメージ配列内のファイル名はファイルシステムから削除され、そのイメージはデータベースから削除されます。
ただし、フォームが送信されると、チェックされたチェックボックスのみの0インデックス付きの配列が取得されます。私は削除のための3枚の任意の画像を設定するのであれば、アプリはこれは明らかに動作しません
Array { [0] => "on", [1] => "on", [2] => "on" }
になるだろう、リストの最初の3枚の画像は関係なく、チェックボックスが設定されているのに削除されます。
どうすればこの問題を解決できますか?私はシステムがすでに同じ名前を持つすべてのチェックボックスで動作するように構築されているので、各チェックボックス(delete_1
、delete_2
、delete_3
、など)の命名を避けたいと思います。すべてのチェックボックスを強制的に "オン"または "オフ"で送信する方法はありますか?
あなたができることは分かりませんでしたそれ。ありがとうございます(許可されている場合は受け入れます) –
omg、それはひどい解決策であり、質問に対する答えではありません。 – zerkms
@ Steveバックエンドの振る舞いを変えなければならないので、私はそれらをすべて異なった名前にすることを避けたかったのです。私はあなたが "オン"または "オフ"以外の値を提出できることを認識しませんでした - これは最小限の変更を必要とします –