ugrás a tartalomhoz

Valtozok atadasa tobblepeses form eseten

balage020 · 2007. Ápr. 26. (Cs), 15.54
Udv!

Egy tobblepeses formot csinalok.
Az elso oldalon van egy radio button list es nehany checkbox.
Az illeto kitolti a formot, nyom egy tovabb gombot, POST-tal at is mennek a valtozok.
Irtam egy "vissza" gombot a masodik oldal aljara, amivel vissza lehet menni, modositani az elso oldalon a bejelolt adatokat.
Viszont ez a gomb nem muxik ugy ahogy en szeretnem, ugyanis a formban beallitott adatok resetelodnek.
A kod a gombon igy nez ki:
<php 
                if (isset($HTTP_REFERER)) {
		   echo "<a href='$HTTP_REFERER'>Vissza</a>";
	        } 
                else {
	           echo "<a href='javascript:history.back()'>Vissza</a>";
	        } 
             ?>
Kerdesem az, hogy hogy lehet megoldani, hogy az elso oldalon minden megmaradjon, mintha csak a bongeszo vissza gombjat nyomtam volna meg?
Csak javascripttel lehet?
Gondoltam arra is, hogy session valtozokba eltarolom a postolt form ertekeket, es azt valahogy ertekul adom a form elemeinek...de ez nem tudom, muxik-e..

Koszi elore is a segitseget!

Balazs
 
1

Többoldalas form.

s_volenszki · 2007. Ápr. 26. (Cs), 16.03
Szia!

Az én tapasztalaton alapuló véleményem az, hogy ha:

1. Nincs az oldalak betöltődése közben adatbázis művelet, akkor célszerűbb DOM-ban megoldani az oldalakat.
2. Ha van, lényegesen egyszerűbb AJAX segítségével fenntartani a kommunikációt a kliens és a szerver között.

Nekem egyszer kellett csinálnom egy, viszonylag egyszerű, de 15 kérdésből álló kérdőívet, ahol a kliens újra csak akkor kommunikált a szerverrel amikor kész volt mind a 15 kérdés.

Bepakoltam egy html oldalba 15 div-et, a 15 kérdéssel és a következő kérdés meg az előző kérdés gomb igazából csak a div-ek display tulajdonságait változtatgatták.
Majd a végén volt egy tényleges form submit gomb és kész.

s_volenszki
2

De jooo!

balage020 · 2007. Ápr. 26. (Cs), 16.19
Huu, ez a megoldas (marmint a 15 div-es, eltuntetos) nagyon tetszik!
Csak azt aruld el, hogy lehet azt mondani egy barmilyen gombnak, hogy az adott div display tulajdonsagat valtoztassa none-ra! :) A tobbi siman menni fog...
Utananeztem, de csak egy Javascriptes megoldast talaltam, mutatom:

CSS:

<style type="text/css" media="all">
#a1,#a2 { position: fixed; top: 0; right: 0; width: 100px; height: 100px; visibility: hidden; }
</style>

Javascript:

<script type="text/javascript">
numberofdivs = 2;
function showdiv(id) {
for(i = 1; i > numberofdivs; i++)
{
element = document.getElementByID("a"+i);
if(i == id)
element.style.visibility = "visible";
else
element.style.visibility = "hidden";
}
}
</script>


HTML:

<p><em onClick="showdiv(1)">Click me</em> or <strong onClick="showdiv(2);">or me!</strong></p>

<div id="a1">Some stuff</div>
<div id="a2">Different Stuff</div>


Koszi meg egyszer!

Udv,
Balazs
3

Tárold változóban az aktuális kérdés sorszámát.

s_volenszki · 2007. Ápr. 26. (Cs), 16.33
Szia!

Tárold js változóban az aktuális kérdés sorszámát. Ha megy a következőre kerdes++; ha visszalép kerdes--; és innentől már csak bele kell variálnod a változót a lapozásba. Elég egy előre és egy vissza gomb! Ha az előre gombnak azt mondod onClick='LapozzElore()'; a visszának azt hogy onClick='LapozzVissza();'

//A kérdés változó:
var kerdes = 0;
//A funkciók:
function LapozzElore(){
kerdes++;
//Jöhet a saját script
showdiv(kerdes);
}
function LapozzVissza(){
kerdes--;
//Jöhet a saját script
showdiv(kerdes);
}
Még arra figyelj, hogy ne menjen a kerdes változó nulla alá, meg az utolsó kérdésnél cseréld le a következő gombot submit gombra. Beleteheted a gombokat is div-be, amíg tölti a kérdéseket, addíg az előre hátra gombos dived látszik, mikor eléri a kerdes valtozó a maximumot, akkor ezeket elrejted, az utosló kérdés divébe meg beleteszed a tényleges submit gombot.

Jó munkát!

s_volenszki
4

ok! koszi!

balage020 · 2007. Ápr. 26. (Cs), 17.06
Ez jo, es ertem is :)

Koszonom szepen a segitseget!