2012-01-14 16 views
0

Ok、 私は2つのラジオボタン 'A'と 'B'を持っており、ユーザーは誰でも選択することができます。 デフォルトでボタン 'A'が選択されていますが、 'B'を選択するとボタンBに選択が変わりますが、問題は、PHPラジオボタンとセッション

ユーザーが自分のサイトの別のページに移動すると選択がデフォルトに戻りますか? 修正方法 それはキャッシュとセッションの助けを借りて行うことができますか?はいの場合、どうすればよいですか?ここ

<form name="f1" method="POST" action="<?php echo $PHP_SELF;?>"> 
<span>Family filter:</span> 
<ul> 
<li><input type="radio" name="r1" value="o" onClick="submit();" <?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?><?php echo ($_POST['r1'] == 'o') ? 'checked="checked"' : ''; ?> />On</li> 
<li><input type="radio" name="r1" value="p" onClick="submit();" <?php echo ($_SESSION['r1'] == "p") ? 'checked="checked"' :''; ?><?php echo ($_POST['r1'] == 'p') ? 'checked="checked"' : ''; ?> />Off</li> 
</ul> 
</form> 



<?php 
session_start(); 

//私はそれを動作させるためにここに書くことかわからない、ボタンがある:?Sも >

私は、ページの両方のボタンを開くと選択されていない場合はどうすればいいですか?

+0

送信ボタンがないことを考慮すると、セッションを保存するためにAJAX呼び出しを行う必要があります。 – PeeHaa

+0

彼はonClick = "submit();"フォームを提出する必要があります。おもう。だからAJAXは本当に必要ではありません。 –

答えて

2

_POST変数を_SESSION変数に変換する必要があります。 POSTまたはSESSION変数のどちらかでチェックを設定できるので、最初は動作します。

<?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?><?php echo ($_POST['r1'] == 'o') ? 'checked="checked"' : ''; ?> 

これは不要です。あなたのページの最上部に、あなたはこの必要があります:

<?php 
session_start(); 
if (isset($_POST['r1'])){ 
    $_SESSION['r1']=$_POST['r1']; 
} 
?> 

をして、あなたの下にダウンのみエクストラノート

<?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?> 

を必要とする:にsession_start()の呼び出しが非常に発生していることを確認してくださいページの先頭にあり、セッション変数を使用できるようにするすべてのページの最上部に表示されます。

0
session_start(); 
$_SESSION['r1'] = $_REQUEST['r1']; 

あなたのPHPスクリプトへの選択を送信すると、あなたは/ポスト/変数を要求し、セッションを開始した後、セッション変数にそれを格納取得する必要があります。その後、各PHPファイルでsession_start()ステートメントを追加すると、そのスクリプト内のすべてのセッション変数を使用できるようになります。ユーザーがブラウザのsession_set_cookie_params(0);を閉じるか、session_destroy();を使用してログアウトボタンを押したときにセッションクッキーが期限切れになるようにセッションクッキーを設定することもできます。セッション変数を保存したら、すべてのページでその変数を使用してラジオボタンの 'checked'属性を設定できます。