1

私は3つのステップでフォームを持っています。ステップ1からステップ2までチェックボックスがあります。セッションでチェックボックスの値を保持し、ユーザーがフォームのステップ3に進んだ場合でもチェックボックスがオンかオフかを表示したいと思います。次に、ステップ2に戻ります。現在、フォームの送信時に、すべての$_POST変数が$_SESSION変数に含まれていますが、チェックボックスを使用して機能させることはできません。これが今のところです。

   <input type="checkbox" value="<?php  echo isset($_POST['afficher_ddn'])? "1":"0";  ?>"
   style="margin-left: 20px;" name="afficher_ddn" id="afficher_ddn" 
<?php echo $_SESSION['afficher_ddn']=="1" ? "checked" : ""; ?> />

しかし、これは機能しません。

4

3 に答える 3

1
<input type="checkbox" value="1" style="margin-left: 20px;" name="afficher_ddn" id="afficher_ddn" 
<?php echo isset($_SESSION['afficher_ddn']) && $_SESSION['afficher_ddn'] == "1" ? 'checked="checked"' : ''; ?> />

1つは、チェックボックスの値を変更しないことです。チェックされていない場合、投稿変数に渡されません。ここを参照してください:<input type = "checkbox" />は、チェックされている場合にのみデータを投稿しますか?

さて、チェックの現在の基準はchecked="checked"、この基準が私が働いている会社のどこで、なぜこの基準になったのかわかりませんが、それが私たちが行っていることなので、ここでそれを中継します。

ここで提供されているコードが機能しない場合は、var_dump($ _ SESSION)を使用して設定されていることを確認し、Firebug(Firefox)やChromeの開発者ツールなどで実際のHTMLを確認します。時々間抜けが発生し、checked = "checked"が実際にはhtmlに設定されていますが、ブラウザには表示されません。その時、私は通常、いくつかの髪を引っ張り出し、キャッシュをクリアします。その後、通常はクリアされます。

于 2012-11-07T19:24:55.670 に答える
1

コードは問題ありません。コードを手動でチェックしているため、セッションで値を渡す際に問題がある可能性があります。テストには print_r($_SESSION) を使用し、出力を投稿します。可能であれば、すべてのフォームを提供します。

Try Below Code:

   <input type="checkbox" value="1"
   style="margin-left: 20px;" name="afficher_ddn" id="ddn" 
<?php echo $_SESSION['afficher_ddn']=="1" ? "checked" : ""; ?> /> 
于 2012-11-07T19:30:50.073 に答える
0

この例を個別に試してください

次のようにページtest.phpを作成します。

    <?php
    session_start();
    ?>
    <form methos='post' method='post' action='test1.php'>
       <input type="checkbox" value="1"
       style="margin-left: 20px;" name="afficher_ddn" id="ddn"
    <?php echo $_SESSION['afficher_ddn']=="1" ? "checked" : ""; ?> /><br>
Name:<input type='text' name='f1' value='<?php echo $_SESSION['f1'] ?>' ><br>
Select:<select name='s1'>
<option value="" <?php echo $_SESSION['s1']=="" ? "selected" : ""; ?>></option>
<option value="1" <?php echo $_SESSION['s1']=="1" ? "selected" : ""; ?>>1</option>
<option value="2" <?php echo $_SESSION['s1']=="1" ? "selected" : ""; ?>>2</option>
</select><br>
Test:
<textarea name='tex1'><?php echo $_SESSION['tex1']; ?></textarea>

    <input type='submit'  value='submit'>
    </form>

2番目のページtest1.phpを次のように作成します。

    <?php
    session_start();
    print_r($_POST);
    echo $_SESSION['afficher_ddn']=$_POST['afficher_ddn'];
echo $_SESSION['f1']=$_POST['f1'];
echo $_SESSION['s1']=$_POST['s1'];
echo $_SESSION['tex1']=$_POST['tex1'];
    ?>
    <form methos='post' action='third.php'>

    <a href='test.php'>Step1</a>
    </form>

とチェック

于 2012-11-07T20:22:19.623 に答える