Stránka 1 z 1

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

Napsal: 02 říj 2015 08:32
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

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

Napsal: 02 říj 2015 08:43
od Arha
Koukni se na toto.

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

Napsal: 02 říj 2015 08:51
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"

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

Napsal: 02 říj 2015 11:33
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

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

Napsal: 02 říj 2015 11:40
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'];
}
 

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

Napsal: 02 říj 2015 11:59
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

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

Napsal: 02 říj 2015 14:57
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.

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

Napsal: 02 říj 2015 20:40
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