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:
  1. <php   
  2.                 if (isset($HTTP_REFERER)) {  
  3.            echo "<a href='$HTTP_REFERER'>Vissza</a>";  
  4.             }   
  5.                 else {  
  6.                echo "<a href='javascript:history.back()'>Vissza</a>";  
  7.             }   
  8.              ?>  
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();'
  1. //A kérdés változó:  
  2. var kerdes = 0;  
  3. //A funkciók:  
  4. function LapozzElore(){  
  5. kerdes++;  
  6. //Jöhet a saját script  
  7. showdiv(kerdes);  
  8. }  
  9. function LapozzVissza(){  
  10. kerdes--;  
  11. //Jöhet a saját script  
  12. showdiv(kerdes);  
  13. }  
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!