zpracování formuláře na stejné straně

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

zpracování formuláře na stejné straně

Příspěvek od pajacz17 »

Ahoj, můžete mi prosím poradit, jak udělat zpracování formuláře na stejné straně? Např. když je pole input prázdné, aby se vypsalo vedle tohoto pole "potřeba vyplnit". Lze pro to použít funkci isset?

Kód: Vybrat vše

<form action="zpracovani.php" method=post>
            
Jméno:  <input type="text" name="jmeno" />

</form>


zpracovani.php

<?php
$jmeno = $_POST['jmeno'];

if (empty($jmeno))

{
echo "Nutné vyplnit"  /* Toto se ale vypíše vždy na nově otevřenou stranu*/
}

Děkuji
Uživatelský avatar
Arha
Level 4.5
Level 4.5
Příspěvky: 1826
Registrován: 10 čer 2011 20:29
Bydliště: Dačice

Re: zpracování formuláře na stejné straně

Příspěvek od Arha »

Koukni se na toto.
I skladník ve šroubárně si může psát vlastní SQL příkazy.
Uživatelský avatar
Petr Hnátek
Level 3.5
Level 3.5
Příspěvky: 654
Registrován: 13 lis 2013 20:48

Re: zpracování formuláře na stejné straně

Příspěvek od Petr Hnátek »

Pokud to chceš na stejné straně, tak nesmíš akci odkazovat na stranu jinou.

Dej tam jen action="" a PHP kód hoď úplně nahoru do souboru kde máš formulář nebo ho tam includni.

Ale na tyto upozornění doporučuji javascript nebo pro takové základní si do tagu input přidej atribut s hodnotou required="required"
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: zpracování formuláře na stejné straně

Příspěvek od pajacz17 »

Děkuji required je dobrý, ale potřebuji pole víc ošetřit než jen proti nevyplnění.

Udělal jsem si takový příklad na pochopení , ale pořád mi to vypisuje při prvním načtení, že není nadefinovaná proměnná $jmeno.
( Notice: Undefined index: jmeno in D:\xampp\htdocs\index.php on line 3 )

Kód: Vybrat vše

<?php

$jmeno = $_POST['jmeno'];

echo " <form action='' method=post>

Jméno:  <input type='text' name='jmeno' />
<input class='send' type='submit' value='&nbsp;Odeslat&nbsp;' name='submit' />

</form>";
?>

 
<?php 

if ($jmeno == 5)
{
echo "Chyba";
}
?>
Netušíte, proč to vypisuje?

Děkuji
Uživatelský avatar
Petr Hnátek
Level 3.5
Level 3.5
Příspěvky: 654
Registrován: 13 lis 2013 20:48

Re: zpracování formuláře na stejné straně

Příspěvek od Petr Hnátek »

Ten řádek

Kód: Vybrat vše

$jmeno = $_POST['jmeno']; 
dej do:

Kód: Vybrat vše

if(isset($_POST['submit']))
{
     $jmeno = $_POST['jmeno'];
} 
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: zpracování formuláře na stejné straně

Příspěvek od pajacz17 »

Ano, teď to nevypisuje, ale zase tam nejsem schopný dát podmínku. Jak ji tam mám k tomu dopsat?

Kód: Vybrat vše

<?php 

if ($jmeno == 5)
{
echo "Chyba";
}
?>
Děkuji

Dodatečně přidáno po 1 hodině 8 minutách 58 vteřinách:
Ono jde asi o to, že se příkaz provádí již při načítání stránky, a tam není $jmeno nadefinována. Jak provedu příkazy na stejné straně, ale až po stisku tlačítka submit? Je to možné?

Dodatečně přidáno po 1 hodině 2 minutách 51 vteřinách:
Tak se mi to povedlo, ale zase si to nepamatuje pole před odesláním. Tak nevím jak na to.
Je možné mít třeba pět polí a vždy vypsat hlášku vedle příslušného pole, aniž by se ty správné již nesmazaly?
Mohu ještě poprosit o informaci, proč je doporučován javascript?

Díky
Uživatelský avatar
Petr Hnátek
Level 3.5
Level 3.5
Příspěvky: 654
Registrován: 13 lis 2013 20:48

Re: zpracování formuláře na stejné straně

Příspěvek od Petr Hnátek »

Pro více polí lze využít funkce pole:

Kód: Vybrat vše

array(); 
Javascript je doporučován, protože se kontrola polí vykonává na straně prohlížeče a nezatěžuje se tím zbytečně server.
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: zpracování formuláře na stejné straně

Příspěvek od pajacz17 »

Tak javascriptu neholduju vůbec. Pomocí jquery jsem schopný něco udělat, ale JS snad až ovládnu trochu php. Zkusím se v tom pohrabat pomocí těch polí, tak snad něco vykoumu. Děkuji za rady
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na „Programování a tvorba webu“