タイトルの漠然としたことをお詫びしますが、私はこれを単語に入れるのが難しいと感じています。PHP HTMLフォーム配列 - ユーザーが新しいエントリを追加する方法を教える方法
私はkey:value
のペアを含んでおり、データベースから読み込まれ、入力として値として配置され、再度読み込まれます(編集、削除、または追加される可能性があります)。サーバー側では、自分のデータを掘り起こすためにユーザーが何をしたのかを把握する必要があります。
例:
<input type='text' name='keyID[]' value='1'/>
<input type='text' name='key[]' value='someKey'/>
<input type='text' name='value[]' value='someValue'/>
<input type='text' name='keyID[]' value='2'/>
<input type='text' name='key[]' value='someOtherKey'/>
<input type='text' name='value[]' value='someOtherValue'/>
<input type='text' name='keyID[]' value='3'/>
<input type='text' name='key[]' value='yetAnotherKey'/>
<input type='text' name='value[]' value='yetAnotherValue'/>
<input type='text' name='key[]' value='aCompletelyNewKey'/>
<input type='text' name='value[]' value='aCompletelyNewValue'/>
フォームが送信されると、私は元のデータを削除し、(私の新しいデータとして他の配列のn番目の値をgeting)キーを通じてforeachループを行い、これを追加データベースに転送します。
これは、更新されたデータベース設計で困ってしまうまでうまくいった - 今は何が提出されていないか(ページ上で削除されたか)、まだそこにあるのか)、新しいもの(keyID[]
はありません)。
keyID[]
秒のリストに対して
array_diff()
を使用してきたが、どのように私は(新しい入力に対して
keyID[]
は存在しないとき追加されているかを把握う
key[]
とvalue[]
の両方があります)。
また、アレイの値が送信される順序を保証することはできませんので、keyID[]
配列の末尾まで数えて、余分な値をチェックすると正しい値が得られるとは思いません毎回。
アイデア?
を、あなたは '鍵IDが[]'とにかく、ちょうどそれにブランク値を与える '値を=「」'含める必要があります。この方法でループすると、その値をチェックできます。それが空であれば、新しいk/vペアが追加されていることが分かります。 –
常識がもう一度勝つ:)ありがとう、本当に私は問題を解決しました。単純な解決策は最高です:) – jammypeach