0

重複の可能性:
空のチェックボックスを使用してHTMLフォームを送信する

データベースにデータを送信しようとしています。次のように、フォームのチェックボックスの値をデータベースに送信しようとしています。

<input type='checkbox' name='continue' <?php if ($_POST[continue] == TRUE)  echo "value='y' checked='checked'"; else  echo "value='n'"; ?> />

チェックボックスがオンになっているときにデータを送信すると、値は「y」になります。ただし、チェックボックスをオンにすると、データベースにデータが送信されません。

お知らせ下さい。

4

4 に答える 4

2

解決策1:(より良い方法)

<input type="checkbox" name="continue"<?php echo (isset($_POST['continue']) ? ' checked="checked"' : ''); ?> />

データベース(?)ファイル:

$continue = isset($_POST['continue']) ? 'y' : 'n';

解決策2:(非推奨)

<input type="hidden" name="continue" value="<?php echo isset($_POST['continue']) ? 'y' : 'n'; ?>" />
<input type="checkbox" name="continue_x"<?php echo (isset($_POST['continue']) ? ' checked="checked"' : ''); ?> onclick="document.getElementsByName('continue')[0].value=this.checked?'y':'n';" />
于 2012-06-17T15:31:10.457 に答える
1

まず、PHPを使用してチェックボックスを検証しようとすると、サーバー側と対話することなくすぐに実行できるJavaScriptとは異なり、ライブチェックは実行されません。

それで、あなたは何をしようとしていたのでしょうか。フォームからデータベースにデータを挿入したいと思います。

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

したがって、上記のコードで行っているのはisset、チェックボックスがオンになっている場合に関数を使用してチェックし、フォームを再度呼び出すと、チェックボックスは状態を保持し、チェックされたままになります。

次に、データベースに挿入する値を取得する必要がある部分に移動します。

if (isset($_POST[continue])) 
    $cont = 'y';
    else $s = 's';

クエリに値を挿入する前にこれが必要になります。クエリで値として$_POST[continue]使用する代わりに$cont、正しい値を取得します。

于 2012-06-17T19:02:26.267 に答える
0

これを試して

<input type='checkbox' name='continue' <?php if ($_POST['continue']==TRUE) { echo "value='y' checked='checked'"; } else { echo "value='n'"; } ?> />
于 2012-06-17T15:34:26.410 に答える
0

チェックされたチェックボックスは成功し(そしてそれらの値を送信し)、チェックされていないチェックボックスは成功しません(そして失敗します)。

チェックボックスに固定値を指定してから、データの特定の値ではなく、データの存在(または不在)に基づいてチェックされているかどうかを判断する必要があります。

この値は、同じ名前のチェックボックスが複数ある場合にのみ重要です(たとえば、「定期的に使用するすべての輸送モードにチェックマークを付ける」タイプの質問など)。

于 2012-06-17T16:44:31.793 に答える