$ _SESSION Bir diziye ekleme

0 Cevap php

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;
}

0 Cevap