Diskuze: Formulář a zápis do value
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Přes PHP třeba nějak takhle:
<form action="stranka.php" method="POST">
Jmeno: <input type="text" name="jmeno" />
<?php if (!isset($_POST["jmeno"]) || $_POST["jmeno"]=="") echo "Wie heißt du?"; ?><br />
<input type="submit" value="Submit" />
</form>
Časem by se to vyplatilo udělat i v JavaScriptu na klientovi, aby měl okamžitou reakci a abys ušetřil "zátěž" serveru.
Nevím, jestli to už jde nějak elegantněji, ale v časech, kdy jsem dělal v PHP se to řešilo většinou nějak takhle
děkuju, to by taky šlo, to napsat pod lištu, ale přímo do ní to nejde? Mám na mysli třeba tvorbu kalkulačky, tam se taky používá jedna společná, textová lišta a zajímalo by mě, jestli takto funguje i lišta u formuláře Nebo pokud ne, tak jaký typ textového pole, by se použil na tvorbu kalkulačky v php? Mám zatím zkušenost jen z formulářem.
Prostě kamkoliv hodíš to echo, tam se to vypíše.
Přijde mi to, že nevíš, jak PHP funguje
Při prvním načtení stránky jsou (obvykle) proměnné prázdné, takže
na to nějak reaguješ, zobrazíš form apod.
Po kliku na odeslat (submit) se ti ta stránka celá načte znova, s tím, že
do POST (nebo GET, podle method) se ti při tom kliku uloží obsahy těch
ovládacích prvků, takže zkontroluješ, jestli zadal všechno a form třeba
vůbec nevykreslíš, jen nějakou hlášku že registrace proběhla úspěšně
apod.
Můžeš třeba i vyplnit hodnotu těch položek, co uživatel zadal (pokud jich měl na formu víc a nezadal jen jednu věc, tak aby nemusel zadat všechno znova, tak mu tam ty hodnoty už předvyplníš, protože už je máš v $_POST
<input type="text" name="jmeno" value="<?php echo $_POST["jmeno"]; ?>"/>
(samozřejmě by to chtělo ještě ověření, jestli tam nějaká hodnota v $_POST["jmeno"] je)
Validaci lze využít už i na straně klienta - v HTML a nebo v JS. Každopádně v HTML využij atribut required (http://www.itnetwork.cz/…cesky-manual). Funguje perfektně i ve starších prohlížečích.Validace je jednoduchá. Na inputech typu text musí být njěkaý text, na inputu typu email by měl text odpovídat emailu. Samozřejmě na straně serveru je stejně potřeba ověřit
ajo vlastně, vždyť se vlastně celý formulář může hodit do podmínky,nebo třeba jen část z něj já mám furt zakódované, že je to prostě jazyk, co je částečně statický, neměnný a že s tím nemůžu nic dělat a ono se vždycky něco najde
Zirko: Dík za tip
ok, vzdávám se, budu se muset zeptat ještě na jednu věc v tomto tvém kódu se pokaždé vypíše, že uživatel nezadal jméno, i když to okno viděl poprvé.
<form action="stranka.php" method="POST">
Jmeno: <input type="text" name="jmeno" />
<?php if (!isset($_POST["jmeno"]) || $_POST["jmeno"]=="") echo "Wie heißt du?"; ?><br />
<input type="submit" value="Submit" />
</form>
Proto jsem se tomu snažil předejít, ale bezúspěšně. I když kliknu na tlačítko, tak hodnota má stále null, takže se žádná hláška nezobrazí, takže se buďto zobrazuje furt, nebo vůbec :/ dalo by se nějak proměnnou deklarovat, třeba jako string, aby to dávalo smysl? Nebo se toto řeší úplně jinak?
<body>
if(isset($_POST["btn_add_all"]))
{
$jmeno = $_POST["txt_add_name"];
$rasa = $_POST["txt_add_race"];
}
//pokud tyto proměnné neexistují, nastav je na null
if(!isset($jmeno,$rasa))
{
$jmeno=$rasa=null;
}
?>
<div id="vnitrni_ramecek">
<form action="index.php" method="POST">
<p>Jméno: <input type="text" name="txt_add_name" /></p>
<?php
if((!is_null($jmeno)) && ($jmeno == ""))
echo "Toto pole nesmí být prázdné";
?>
<p>Rasa:  <input type="text" name="txt_add_race" /><br /> </p>
<?php
if((!is_null($rasa)) && ($rasa == ""))
echo "Toto pole nemůže být prázdné";
?>
<p><input type="submit" name="bt_add_all" value="Přidat mazlíčka" /></p>
</form>
</div>
mas tam preklep - bt_add_all vs btn_add_all
To je jedna z tech veci, proc nerad pouzivam php, tyhle veci si musis hlidat a spatne se hledaji, asp.net / java (i kdyz mozna i nejake php? - s tim nemam zkusenosti) frameworky tohle resi za tebe a podobne chyby castecne eliminuji.
no doprčic a to mi netbeans všechno opravuje všechno až na... na texty v uvozovkách, ach jo
už to funguje perfektně. takže ve formuláři se všechno převádí na string, když už hodnota není null, ale "", že?
Nevim, jestli to delaji uplne vsechny prvky, ale asi ano .
Zobrazeno 14 zpráv z 14.