Autor Zpráva
stepanka
Profil *
Ahoj,

prosím, jak řešíte případy, když máte na stránce formulář, který končí více submit tlačítky? tzn. při kliknutí na první submit přejde uživatel na jinou stránku, při kliknutí na druhý zase na nějakou jinou, atd.. Jde to nějak udělat?

Děkuju
fopen
Profil *
jednoducho
<input type="submit" name="action" value="Value1" />
<input type="submit" name="action" value="Value2" />
<input type="submit" name="action" value="Value3" />
...
stepanka
Profil *
fopen
coto? :-) To přece nemůže fungovat... Co máš ve <form action"?">? Po odeslání toho, co píšeš, budeš mít akorát nastavené hodnoty $_POST['action'], ale zdá se mi hodně nepravděpodobné, že by to formulář pochopil tak, že na hodnotu $_POST['action'] se má odkázat..
Werewolf
Profil
stepanka:
<?php ob_start(); session_start(); import_request_variables("p", "post_"); ?>
<!-- něco něco něco -->
<form action="<?php echo($_SERVER['REQUEST_URI']); ?>" method="post">
<!-- něco něco něco -->
<input type="submit" name="action" value="Přejít tam" />
<input type="submit" name="action" value="Přejít jinam" />
<input type="submit" name="action" value="Navštívit Google" />
</form>
<?php
if($post_action == "Přejít tam") { header("Location: http://www.seznam.cz"); }
elseif($post_action == "Přejít jinam") { header("Location: http://www.linuxsoft.cz/php"); }
elseif($post_action == "Navštívit Google") { header("Location: http://www.google.cz"); }
/* něco něco něco */
?>
<!-- něco něco něco -->
<?php ob_end_flush(); ?>
stepanka
Profil *
Já vím, ale potřebuju z toho formuláře přenášet data.. Uživatel si tam zatrhne několik checkboxů a bude pokračovat na stránce "Přejít jinam" ... po header se už ale nedozvím $_POST hodnoty, které formulář předal... Zatím jsem to vyřešila pomocí JS, sice je to takové kostrbaté řešení, ale funguje.
fandaa
Profil
Werewolf
Nezapomínáš na to, že se taky budou posílat nějaké údaje, které se budou zpracovávat? Při přesměrování přes header tyto data ztratíš.

stepanka
Lze měnit action přes JavaScript, ale bacha na ty, kteří jej mají vypnutý.

Edit: Ještě by se dalo použít Werewolfovo řešení s tím, že by se data uložily např. do $_SESSION, popř. $_COOKIE; poté by se přesměrovalo.
Werewolf
Profil
stepanka:
No dobrá. Já myslel, že jde čistě o redirect.

Edit:
fandaa:
Ano, zapomínám.

Edit2:
Ovšem pokud jsou ty stránky, na které se přesměruje, na tom samém serveru, údaje se dají snadno uložit do session a pak číst.
stepanka
Profil *
ok, buď Javascript, nebo ukládat do session... Zkusím co bude lepší.. Děkuju moc všem.

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: