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

pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: březen 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod pajacz17 » 02 říj 2015 08:32

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

Reklama
Uživatelský avatar
Arha
Level 4.5
Level 4.5
Příspěvky: 1826
Registrován: červen 11
Bydliště: Dačice
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Arha » 02 říj 2015 08:43

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: listopad 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Petr Hnátek » 02 říj 2015 08:51

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: březen 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod pajacz17 » 02 říj 2015 11:33

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: listopad 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Petr Hnátek » 02 říj 2015 11:40

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: březen 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod pajacz17 » 02 říj 2015 11:59

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: listopad 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Petr Hnátek » 02 říj 2015 14:57

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: březen 14
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod pajacz17 » 02 říj 2015 20:40

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti