1

こんにちは私はいくつかの問題を抱えています。

デフォルトでチェックが入っていて、選択を解除して送信を押したらチェックを外したい

<input type="checkbox" name="show_signature" value="1"<?php echo isset($_POST['show_signature'])) ? ' checked=""' : '' ?>>

これは、チェックを外す>送信するとうまく機能し、チェックボックスはチェックされず、チェックしてフォームを送信してもチェックされたままになります。

ただし、デフォルトでチェックを付けたいと思います。これはうまくいかないのですか?

if (isset($_POST['show_signature'])) {
    echo ' checked=""';
} else {
    echo '';
}

これを試してみました

if (isset($_POST['show_signature']) || !isset($_POST['show_signature'])) {
    echo ' checked=""';
} else {
    echo '';
}
4

1 に答える 1

1

わかった; 質問から、私はこのプロセスを得まし
た。ページが初めてロードされるときに、チェックボックスをオンにしてください。
ページが送信されるときに、チェックボックスがオフになっている場合は、オフのままにします。それ以外の場合は、チェックします。
試す

 
  /*making the assumption that the submission process starts when a submit button 
   with name **submit** is present, use this

*/ 
 if (isset($_POST["submit"])){
    value = '<input type="checkbox" name="show_signature"'; 
    value .= (isset($_POST["show_signature"]))? 'checked="checked"': "";
    value .= ' />';
    print value;
 }
else{ //when the page is initially loaded
 print '<input type="checkbox" name="show_signature" checked="checked" />';
} 

 

投稿が送信ボタン (またはその他のフィールド) に依存する理由は、ユーザーがボックスのチェックを外すと、$_POST["show_signature"] 変数が見つからず、フォームがまったく処理されないためです。これで問題は解決するはずです。

説明が明確で、これが役立つことを願っています。

于 2013-07-24T21:55:13.623 に答える