0
 <p>Special Meal Request:<br />
      <label>
      <input type="checkbox" name="dietaryveg" value="yes" />Vegetarian
      </label>
      <label><input type="checkbox" name="dietaryglut" value="yes" />Gluten-Free
      </label>

これは、私が作成したフォームに使用することにしたものです。チェックボックスは 1 つしか必要ないため、ラジオ ボタンは使用しませんでした。チェックボックスに同じ名前を付けなかったのは、ユーザーがベジタリアンの食事とグルテンを含まない食事の両方を必要とする可能性があるためです。

ただし、mysql ワークベンチでデータベースをプルアップすると、チェックされていないボックスが表示され、列に値がありません。次に、値がnoの非表示のチェックボックスを配置しようとしましたが、デフォルトでチェックされています。しかし、データベースでは両方の値がnoとして表示されます。

さて、php はチェックされたボックスの値のみを気にし、チェックされていないボックスの値は気にしないことに気付きましたが、データベースにデフォルト値がある場合、NULL のようにそこにあるはずだと思います。それ?

食べ物の好みの行のためだけに完全に別のテーブルを用意したくはありません。何かが欠けているだけだと確信しています。

これを処理する最善の方法についてアドバイスをいただけますか?

4

2 に答える 2

1

:のようなことをしていて(isset($_POST['dietarygut']))、それが設定されていない場合、値はNULLデータベースにアップロードされます。PHPスクリプトを投稿する

于 2012-08-07T13:23:51.617 に答える
0

デフォルト値は何だと思いますか? HTML チェック ボックスでは、value属性はデフォルト値を意味するのではなく、チェックされている場合にボックスが送信する値を意味しますいずれかがチェックされていない場合、またはどれもチェックされていない場合、値「yes」は一緒に送信されません。

mlishn が彼の回答で述べたように、ボックスの一方または両方が設定されているかどうかをプログラムで確認し、設定されている場合はそれらの値を挿入する必要があります。

于 2012-08-07T13:28:27.460 に答える