Autor Zpráva
Lenka22
Profil *
Prosím, chtěla bych se zeptat, existuje nějaká možnost, jak uchovávat hodnoty ve formulářích při kliknutí na tlačítko "submit"?
Přesněji mám formulář, který začíná
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
, a když kliknu na tlačítko "Odeslat", stránka se mi obnoví.
Potřebovala bych, aby při obnovení zůstaly zachovány údaje na stránce tak, jak byly před kliknutím na toto tlačítko.
Resp. mám nad tímto formulářem ještě jeden, kde se zadávají uživatelé. A tento údaj (zvolený uživatel) se mi při obnovení stránky změní na "Všichni". Chtěla bych, aby tam zůstal ten zvolený.
Jaksi k tomu nemůžu nic najít..
Děkuju moc.
Mastodont
Profil
Po odeslání formuláře a jeho zpracování na serveru je třeba přesměrovat. Odeslané údaje se dají uložit třeba do session a z ní poté načíst. Na klíčová slova redirect, session, formulář ti nějaké stránky určitě vyjedou.
Lenka22
Profil *
Ehm, tak teď jsem z toho mírně vedle..

Přesměrovat který formulář?
Mám dva, zjednodušeně vypadají nějak takto:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="user_id">
<option value="0">Vše
<option value=DALSI HODNOTY>JEDNOTLIVI UZIVATELE NACITAJICI SE Z DB
</select>
<input type="submit" name="zobrazit" value="zobrazit">
</form>


A druhý:

<form name="bug_action" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
while ($row = db_fetch_array($result)) {
echo "<input type='checkbox' name='row".$row['id']."'>";
echo $row['realname'];
}
<input type='submit' name='oznacit' value="Označit">
</form>


A přesměrovat myslíš v "action" u formu, nebo potom pomocí header?

Děkuju.
Lenka22
Profil *
Potřebovala bych, aby kliknutí na tlačítko "Označit" neovlivnilo první formulář. Aby při případném vybrání něterého uživatele tam ten daný uživatel zůstal vybraný, dokud se nevybere jiný.. Stačí když mě nakopneš, co mám špatně. Mám změnit "action" u formu? Nebo přidat někde <input type="hidden"> a pomoct si tímto?

Díky.
Mastodont
Profil
A ty dva formuláře jsou v jedné stránce nebo jak na sebe navazují?
Lenka22
Profil *
Ano, mám je na jedné stránce. Vadí to?
Lenka22
Profil *
Mám ten první <form>, za ním zpracování toho druhého formuláře, a za tím ještě druhý <form>..
Mastodont
Profil
Tak to ti neporadím, protože tohle nepoužívám. Když už, tak to dělám postupně, čili zpracuji první formulář a na jeho základě odešlu druhý.
Lenka22
Profil *
Tak jo, zkusím to rozdělit do dvou stránek..
Mastodont
Profil
Klidně to můžeš mít v jednom souboru, ale do HTML posílej vždy jen jeden formulář. Dva najednou stejně zpátky z prohlížeče na server neodešleš ... ukázku máš třeba na
http://www.waiheke.co.nz/php/several_form/index.htm
Lenka22
Profil *
Zkusila jsem to rozdělit do dvou stránek, ale mám teď problém, že u toho druhého formuláře nevidím i ten první :-) Ono to totiž vypadá takto: obrázek
V závislosti na zvoleném uživateli se objeví checkboxy s jeho úkolama.

Poradíš mi, prosím, jestli bude v tomto případě lepší to rozdělit na dvě stránky, nebo dát dva formuláře do jedné stránky? Děkuju moc.
Lenka22
Profil *
Jak si mi poslal ten odkaz na http://www.waiheke.co.nz/php/several_form/index.htm
tak tam budu mít asi stejný problém. Větev else to rozdělí tak, že uvidím buď rozbalovací lištu, nebo checkboxy s úkolama... Ale já bych potřebovala vidět obojí, aby nemusel správce složitě mezi formulářema přepínat.
Medvídek
Profil
Nebo použij SESSION .. ulož si hodnotu toho prvního formuláře a kontroluj, zda-li byla změněna. Pokud ne, tak session zustane stejne, pokud ano, tak ji zmenis na aktualni hodnotu :)
Lenka22
Profil *
Medvídek

První formulář už mi odesílá $_SESSION['user'], což je ID právě vybraného uživatele v rolovací liště.
Ale jak zkontroluju, jestli byla SESSION změněna?

Děkuju.
Medvídek
Profil
No pokud ho někdo změní ne ?
Lenka22
Profil *
Medvídek
a jak to zkontroluju v kódu?
Lenka22
Profil *
když si do nějaké proměnné přiřadím hodnotu ze session, a pak zvolím jiného uživatele, vloží se do session jeho ID a přepíše se na tu samou hodnotu i ta proměnná..
Lenka22
Profil *
Tak už nic, už se mi to povedlo :-)

Až teď mě napadlo, že dva formuláře jsou tam zbytečně a dala tam jen jeden, který obsahuje vše. A jede to perfektně. Ale i tak moc děkuju za rady.

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