0

コード:

<input type="checkbox" name="discountedItem" <?php if (isset($_POST['discountedItem'])) echo "checked" . " " . "value='y'"; ?> />

これをifステートメントに変換して、チェックされていない場合に値がになるようにするにはどうすればよいnですか?

私は試した:

<input type="checkbox" name="discountedItem" <?php if (isset($_POST['discountedItem'])) { echo "checked" . " " . "value='y'"; } else { echo "value='n'"; } ?> />

うまくいきませんでした。値は NULL でした。

4

2 に答える 2

1

チェックボックスが設定されていない場合、value=は送信されません。

チェックボックスをオンにすることはできませんn。ラジオボタンについて考えてみましょう。ifまたは、文字列ではなく現在の値を検索するように、処理ロジック(参照したもの)を単純に適合させます。

于 2012-10-19T03:07:41.923 に答える
0

値を確認すると、POST に送信されます。チェックを外すと出ません。

これに対処する方法は、プレースホルダー値 (-10 のようなもの) を持つチェックボックスと同じ名前の隠し要素を含めることです。処理スクリプト (POST を受け取るスクリプト) はその値をチェックし、必要な行動

<input type='hidden' name='discountedItem' value='-10' />
<input type='checkbox' name='discountedItem' ....>

ただし、このアプローチにはブラウザーの非互換性がある可能性があります。過去に、IE が両方の値を POST に投稿し、一方が他方を上書きしないことを見てきました (これが本当に必要なことです)。

その解決策は、javascript のスニペットだけを使用して、チェックボックスの onclick イベントにアタッチすることです。チェックボックスがオフの場合、同じ名前とプレースホルダー値を持つ新しい隠し要素が DOM に追加され、チェックボックスがオンの場合、隠し要素が削除されます。

したがって、ロジックは次のようになります。

<input type="checkbox" name="discountedItem" <?php if (isset($_POST['discountedItem']) && $_POST['discountedItem'] == '-10') { echo "checked='checked'" . " " . "value='y'"; } ?> />

HTH

于 2012-10-19T03:53:44.460 に答える