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.
Zobrazeno 14 zpráv z 14.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.