Autor Zpráva
gerix
Profil *
Dobrý den,

používám script od p. Vrány - vícestránkový formulář viz Odkaz v php...

Na první stránce mám tohle: Odkaz

Je to základní formulář + když uživatel bude potřebovat více polí, může si je pomocí JS přidat. Problém, ale nastane když by se uživatel vrátil z druhé strany zpět na první. Přidaná textová pole pomocí js zmizí.

Chtěl bych se tedy zeptat, jakým způsobem vyřešit zachování přidaných textových polí při návratu na první stranu?

Díky za odpovědi
Darker
Profil
Musíš je někam ukládat, v tomhle případě asi nejlépe do cookies.
gerix
Profil *
Nepochopil jsi moji otázku. Data z formuláře ukládám přes session..., ale jde mi o to jak načít přidaná pole javascriptu?

Uživatel vyplní textová pole (první defaultní box) => přidá další textová pole (dle potřeby další box) => data z těchto všech polí se uloží do session a pak se zapíší do databáze. To je OK!

Ale když se vrátí uživatel tlačítkem "zpět" třeba z druhé strany na první, tak je tam jen prvni defaultní box a né ty co přidal a vyplnil. No a mě jde o to, jak to ošetřit, aby se načetly i ty přidaná pole.

Takže nejspíš nějakou kombinací js+php(session nebo cookies) ale jak?
Taps
Profil
gerix:
na první stránce musíš kontrolovat zda data v session existují. Pokud existují tak je např. pomocí pole projdi a vypiš do formulářových polí. Pokud data neexistují tak se vypíše klasický formulář.
gerix
Profil *
To už mě taky napadlo... Udělat kontrolu, zjistím, že session neexistují a vypíšu defaultni formular, když budou existovat vypíšu textová pole...

ALE

jak upravím JavaScript? Mám ho omezený na maximální počet boxů 5...

Dám příklad... Uživatel přidá další dva boxy.... Máme tedy na stránce celkem 3.... defaultní + dva přidané (ID1 ID2 ID3), uživatel smaže ID2 například... Na stránce zbudou ID1 a ID3... ty vyplní, zapíše se to do session a při návratu na stránku se zkontrolují existence session...

Při návratu se tedy zobrazí box s vyplňenými hodnotami.. ALE při kliknutí na na "Přidat" se přidají další boxy (ID1 až ID5) tzn že vznikne situace kdy budu mít na stránce DVAKRÁT ID1 s dvěmi rozdílnými hodnotami...

Já vím, jdu do extrémů, ale snažím se to ošetřit ze všech stran...

Jak tedy upravit ten JS aby to fungovalo, tak že zkontroluje jestli v <div id="myDiv"> </div> není už náhodou takovéto ID..

Díky moc za rady...
Darker
Profil
gerix:
Nepochopil jsi moji otázku.
Samozřejmě, že pochopil. Měl jsem namysli, abys počet existujících polí ukládal do cookies. Ale Taps to vymyslel mnohem lépe.

Jak tedy upravit ten JS...
Chceš hotový kód?
gerix
Profil *
A co to udělat takhle:

Php script zkontroluje zda existují session... zjistí že nějaká ano vypíše boxy = > pole(1, 3, 4)

Výsledek: php podle toho vypíše boxy 1, 3, 4

A teď omezení javascriptu

for(var i=1;i<=addEvent.maxNodes;i++)
 if(!document.getElementById("my"+i+"Div")){nejmensiCislo=i;break}

celý kód viz odkaz výše...

Jde tam nějak dopsat podmínku, aby se číslo 1,3,4 nepřidalo? Opět by to načetlo php ze session do proměné a tu by vepsalo do JS...

Jde to? bude to fungovat?:) Díky za odpovědi..

Darker:
Chceš hotový kód?
No nechci moc otravovat:) Jsem vůbec rád za každou radu:)
Alphard
Profil
Pracujte s polem, tj. <input type="text" name="moje_policko[]">
PHP vypíše, kolik potřebuje, js přidá, kolik potřebuje.
gerix
Profil
Můžu poprosit o trošku bližší nasměrování? Nějaký návod, nebo co mám vlastně hledat? Díky
Darker
Profil
Pokud budeš dávat jména políček s hranatými závorkami, v PHP ti automaticky vznikne pole. Tedy:
<input type="text" value=1 name="moje_policko[]"> 
<input type="text" value=2 name="moje_policko[]">
<input type="text" value=3 name="moje_policko[ble]"> 

By mělo vypadat při print_R v PHP následovně:
Array(
  0     => 1,
  1     => 2,
  'ble' => 3,
)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0