SESSION配列の使い方

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:12:291108ブラウズ

SESSION配列の使い方は?
コードは次のとおりです
...データベース部分に接続します

while($row=mysql_fetch_array($myquery)){
$arrayid[]= $row[id];
$array[]=$row[question];
...対応する列を対応する配列に割り当てます
}
$cnt= count($arrayid);

$answer[]=$_POST['style1'];
$_SESSION[]=$answer;//ここで問題が発生しましたか?>
< form name="form1" method ="post" action ="select_last1.php">
echo
"".
"A." . $arrayA[$i]."".
```````````````オプション省略 B 、C、および D
?>

$answer[] 配列を通じて各ユーザーのオプションを受け取るオンライン質問応答システムを作成しています。 $_SESSION[] 配列を使用してユーザーのオプションをバッチで保存したい (つまり、ユーザーの回答結果を一度に保存したい)
クリックすると、ページはグループではなく一度に 1 つの多肢選択の質問を読み取ります。送信すると、次の質問が更新されて「同じページ」に表示されます。つまり、クリックして送信するたびに、ページが更新されるのと同じことになります。$_SESSION[] のメカニズムでは、送信されたデータは 1 回しか記録できず、2 回目に送信されたデータは最初のデータを上書きします。
現在 2 つの方法を試しましたが、読み取りが成功しませんでした
方法 1:
$answer[]=$_POST['style1'];

for($i= 0 ;$i
$_SESSION[$i+1]=$answer[$i];

}
循環割り当てですが、POST は毎回 1 つの値のみを $answer[] に送信するため、実際には、ユーザーが送信した回答は $array[0] のみに含まれます。値を $_SESSION[] に割り当てた後は、$_SESSION[1] のみになります。答えと他のキーも含まれています。どちらの値にも答えはありません。
出力結果
Array ( [1] => A [2] => [3] => [4] => [5] => )

方法 2 :
$answer=$_POST['style1']; ここでの $answer は配列ではなく変数であることに注意してください
$i = $i+1;
$_SESSION[$i]=array( "id"=>$i,"answer"=>$answer);
print_r($_SESSION);
目的は、$_SESSION を使用して、id が使用される 2 次元配列を作成することです。質問番号を記録するには、回答を使用して選択肢を記録します。
各質問の出力結果は
Array ( [0] => Array ( [id] => 0 [answer] => ) ) 送信ボタンがクリックされていない
Array ( [ 1] => Array ( [id] => 1 [answer] => A ) ) 質問番号 1 とユーザー オプション A が記録されている送信ボタンを 1 回クリックします...

すべて回答し終えました 複数選択の質問
print_r($_SESSION[5]);
print($_SESSION[4]); に回答すると、$_SESSION[5] のみが値を持ちます。質問、つまり $ _SESSION[$i] には最後の質問だけがあります。
$_SESSION[1]-$_SESSION[4] の値はどこに記録されないのですか?



何か良い方法を考えたり、修正のための提案をしたりするのを手伝ってください



























-----解決策---------
実際の調査プロジェクト (オフラインおよびオンライン) を行ったことがありませんか?

アンケートと回答用紙をマージする必要はありません。マージの機能は、最終出力レポートでデータベース (アンケート部分) を一度読み込む手間を省くだけです。
中間統計があったとしても。通常、アンケートは無視されますが、回答用紙もデータベースに保存されていれば、さらに不要になります

また、アンケートの質問数はそれほど多くありません。答えるのは人間ではなく機械です
一般的には、次回読み出すときはセッションに入れるだけで、クライアントに出力するときは、状況に応じて1つずつ出力することも、一度にすべて出力することもできます。調査のニーズについて
特殊な場合は、後続の質問が不確実で (質問バンク)、前の回答に関連している (ジャンプや巨大な分岐、論理的関係が複雑) ため、各質問を読み取る必要があるということです。図書館

上記の 2 点を踏まえ、一般的な状況 --> 質問を 1 回読んでセッションに記録し、回答は 1 つずつセッションに記録されます
特殊な場合、毎回質問を読みます。セッション
に ID を記録する基本原則は、質問はクライアントの後でセッションに記録されるのではなく、読み取られたときにセッションに記録され、その後クライアントに送信されます。質問には慎重に対応してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。