2017-09-19 4 views
1

ユーザーがボックスをチェックした場合、チェックボックスの値をセッションに保存します。その場合は、ページをリロードした後にボックスをチェックする必要があります。ユーザーがボックスのチェックを外すと、セッションが破棄され、ボックスがチェックされていない必要があります。デフォルトはチェックされていません。チェックボックスをセッション内のフォームから保存する

私は別のコードを試しましたが、何も動作しません。私の例では、たとえユーザーがそれをチックにしたとしてもチェクボックスは常にチェックされています。

ありがとうございました!

マイPHP:

session_start(); 

if(!empty($_POST['debug_on'])) { 
    $_SESSION['debug'] = true; 
} else { 
    $_SESSION['debug'] = false; 

} 

マイ形式:

<form class="form-inline" name="form" method="post" action=""> 
<div class="form-group"> 
<label class="sr-only" for="inlineFormInputGroup">Email</label> 
    <div class="input-group mb-2 mr-sm-2 mb-sm-0"> 
    <div class="input-group-addon">@</div> 
    <input type="email" name="email" class="form-control" id="inlineFormInputGroup" placeholder="[email protected]" value="<?= $email ?>" required > 
    </div> 
</div> 

<div id="debugbox"> 
<label class="custom-control custom-checkbox mb-2 mr-sm-2 mb-sm-0"> 
    <input type="checkbox" class="custom-control-input" name="debug_on" id="debugbox" value="1" <?php if($_SESSION['debug'] = true); echo "checked='checked'"; ?>> 
    <span class="custom-control-indicator"></span> 
    <span class="custom-control-description">Output debug</span> 
    </label> 
</div> 
<button type="submit" class="btn btn-outline-success">Submit</button> 
<br> 
<br> 

</form> 

答えて

0

私は問題はこのラインだと思う:echo "checked='checked'"echo 'checked="checked"'にする必要がありますが、あれば、私は全体のソリューションを提案していますそれはあなたを喜ばせる。あなたのHTML内

session_start(); 
if(!empty($_POST['debug_on'])) { 
    $_SESSION['debug'] = true; 
} 
else { 
    $_SESSION['debug'] = false; 
} 

そして:

<?php print !empty($_SESSION['debug']) && $_SESSION['debug'] == true ? 'checked="checked"' : ''; ?> 
+0

リロードした後、チェックボックスがオフになっています:( – Ronny

+0

@Ronnyフォームが投稿されていないときにセッションが削除されたためです。 – teeyo

+0

@ロニー私は自分の答えを編集しました – teeyo

0
 $refresh = "ok"; 
     if(!empty($_POST['email'])) 
     { 
      $refresh =""; 
     } 

<input type="checkbox" class="custom-control-input" name="debug_on" id="debugbox" value="1" <?php if((isset($_SESSION['debug']) && $_SESSION['debug'] == true) || (!empty($refresh))) { echo "checked"; } ?> > 
+0

おかげで、はSubhash

はこれを試してみてください。これまでのところ動作しますが、ページをリロードした後も、ボックスはまだチェックされていません。私はリフレッシュの後にchekdedボックスを保存したい。どうも! – Ronny

+0

ランダム変数をチェックして、投稿を使用したときにそれを空にしてください。 –

+0

チェックボックスをオフにしてもチェックボックスが常にオンになっています – Ronny

関連する問題