Ben sayfa başına 3 soru var bir anket komut dosyası var. Kullanıcıların ilk sayfadaki sorulara cevap ve sonraki tıkladığınızda, önceki sayfada veri yaparak $_SESSION['survey']['data']
depolanır:
$data = postToArray($_POST, $ignore_fields);
$_SESSION['survey']['data'] = $data;
$data
gibi görünen bir dizidir:
array('question' => 'answer', 'question' => 'answer');
postToArray
Birkaç kontrolleri yapar ve $data
dönmeden önce, gerçek Gönderme biraz yönetir.
Kullanıcı anketin iki sayfa olduğunda, aynı şey üzerinde olur. Ben üstlendiği zaman $data
'question'
(anahtar) olmasaydı eğer oturum diziye eklemek olacağını, $_SESSION['survey']['data'] = $data;
aracılığıyla, oturuma eklendi alır, (kullanıcı bir önceki sayfaya gitti ve onların cevabı değişti çünkü) yaptım ama eğer aynı anahtar ile mevcut değeri üzerine olacağını, ancak son sayfanın teslim yılında ['data']
dizisinin her şeyi yazar oturumu. Bunu düşünmek gel, gayet mantıklı.
Böyle, $_SESSION['survey']['data']
alınırken dizide saklayarak, son teslim okuma, diziler, birleştirme ve ardından OTURUM şeyi yeniden kaydetme gibi çeşitli şeyler denedim, ama benim kod işe yaramadı - - Bu yaklaşım mantıklı mı? Bu mümkün mü?
Ben de array_push
çalıştı, ama hayır şans.
Buna ek olarak, ben en azından her şeyi (kendi dizideki her sunulması) kaydeder ki, $_SESSION['survey']['data'][]
ekleyerek, ancak kullanıcı bir sayfa geri giderse o, değiştirmek ve yeniden göndermek herhangi değerler olarak eklenir çalıştı başka bir dizi.
Tercihen, ben tüm sorular / cevaplar ile dev bir dizi istiyorum ve bu dizi ekleyerek tutar ve mevcut tuşları ile herhangi değerlerin üzerine yazılır.
En iyi yaklaşım nedir?
Thanks, -Ryan
SOLUTION IMPLEMENTED
$data = postToArray($_POST, $ignore_fields);
foreach($data as $question => $answer)
{
$_SESSION['survey']['data'][$question] = $answer;
}