Autor Zpráva
MilanJ
Profil
Mám formulář a potřebuji, aby se po stisku tlačítka stala nějaká akce, jak jinak.:-)

Jak ale nastavit, aby se nevolal jiný script v PHP, ale formulář zpracovala jen nějaká funkce nebo procedura v tom samém PHP souboru, jako je formulář.

Jak se takové věci ošetřují standardně? ...nemám s tím zkušennosti.

Díky
Hugo
Profil
Moc tomu nerozumím, ale asi ti pomůže nastavit action na jméno toho souboru, ve kterém je formulář. Ovšem tento postup není moc vhodný, kvůli opakovanému odesílání dat po reloadu.
jozob
Profil
MilanJ
> "Jak se takové věci ošetřují standardně?"
Záleží od konkrétneho prípadu, ale väčšinou asi presne tak, ako si napísal - tým istým súborom.

Väčšinou sa to rieši tak, že vložíš do skriptu podmienku (PHP), ktorá na základe odoslania údajov ovplyvní obslúženie formulárových dát. Celá stránka bude rozvetvená. Spolu s formulárovými údajmi je potrené odosielať aj nejaký identifikátor, či bolo stlačené tlačidlo "submit".

Uvádzam príklad:

<?php
if(isset($_POST["odoslane"]) && $_POST["odoslane"]=="ano")
{
/* obsluha udajov */
}
else
{
?>
<form action="./<?=$SERVER["PHP_SELF"]?>" method="post">
<!-- polozky formulara (input, select, atd...) -->
<button type="submit" name="odoslane" value="ano">Odoslať</button>
</form>
<?php
}
?>
iru
Profil *
Třeba takhle:

<form method="get">


<input type="submit" name="posli" value="odeslat" />
</form>

if (isset ($_GET["posli"])) { //testuje zda byl formulář odeslán
co se má vykonat
}
iru
Profil *
no, moc dlouho jsem to psala, ale jozob to píše líp.
Anonymní
Profil *
Reload neni vubec problem a sam pouzivam krome vyjimek jako login vyhradne odesilani formulare stejnemu souboru a to z duvodu zobrazeni chybovych hlasek u policek kde se chyba vyskytla a taky proto, ze kdyz uzivatel zada nepovolene udaje nebo je nevyplni vsechny tak se mu opet zobrazi formular s udaji ktere již vyplnil. Nemusim snad rikat ze člověka naštve, když píše delší zprávu, potom odesle ale protože zapomněl vyplnit nick tak se zprava neprida a zobrazi se mu formulař ovsem cisty a on musi psat znovu.

Ja to resim pres podminky zda byly promenne predany pres post, jak jiz tady bylo ukazano, pokud je vse v poradku pak se data ulozi treba do db a vsechny pouzite promenne se zrusi pomoci unset($promenna);
Takze pokud nekde stiskne F5 nebo dá Obnovit tak se nemůže stát(omylem či úmyslne), že vám pošle duplicitní zprávu
RAmses
Profil *
Anonymní jsem já, omlouvám se...
Hugo
Profil
RAmses

To všechno co popisuješ jde řešit i když máš skript v jiném souboru než formulář.
Toto téma je uzamčeno. Odpověď nelze zaslat.