Diskuze: <textarea>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= 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.
Textarea je element do formuláře jako například ipnut či select, který identifikuješ attributem name.
Edit: Po odeslání formuláře a nevyplnění textarei je hodnota null. Přečetl jsem si pozorně tvůj příspěvek.
Ještě doplním, že přítomnost pole můžeš kontrolovat až po odeslání formuláře.
Například máš formulář:
<form method="POST">
<input type="text" name="nazev">
<textarea name="popis"></textarea>
<input type="submit" name="odeslat">
</form>
Takovou kontrolu:
<?php
if(isset($_POST['nazev'])) AND $_POST['nazev'] != null){
echo $_POST['nazev'];
}
?>
Můžeš nahradit tímto:
<?php
if(isset($_POST['odeslat'])){ //Odeslání formuláře, můžeš také použít if($_POST){}
if($_POST['nazev'] != null){
echo $_POST['nazev'];
}
}
?>
Po odeslání pole existuje i v případě kdyby bylo odesláno prázdné..
Pakliže nic nenapíšeš do inputu, tak hodnota je null/false .. Takže v tomto případě se ověřuje jestli hodnota je, nebo není. Pakliže nebude, tak podmínka se nesplní.
<?php
if ($_POST['nazev_name']){
echo "Děkuji ti, že jsi něco napsal.";
}
else
echo "Nenapsal jsi vůbec nic";
?>
Zde to bude pravdivé vždycky, pakliže dáš odeslat a je jedno, jestli je hodnota null.
<?php
if (isset($_POST['nazev_name'])){
echo "Děkuji ti, že jsi něco napsal.";
}
else
echo "Ještě nic jsi nenapsal.";
?>
Formulář:
<form action="#" method="post">
<input type="text" name="nazev_name">
<input type="submit" value="Odeslat">
</form>
No jasně, ale já jsem poukazoval na to, že ji může kontrolovat logicky až po odeslání formuláře. Čili nemusí kontrolovat už zda pole existuje (isset), ale rovnou ví, že se může ptát zda je délka textu větší než 0, apod..
Když dáš pouze kontrolu na to zda pole něco obsahuje(null/false) bez dotazu toho zda vůbec existuje (isset), tak ti to logicky vyhodí hlášku, že testuješ pole, které vůbec neexistuje, není definované chceš-li.
Neefektivní způsob:
<?php
if ($_POST['nazev_name']){ //Při neodeslání formuláře ti hodí hlášku, že pole neexistuje
echo "Děkuji ti, že jsi něco napsal.";
}
else
echo "Nenapsal jsi vůbec nic";
?>
Správný způsob:
<?php
if (isset($_POST['nazev_name']) AND $_POST['nazev_name']){ //Při neodeslání formuláře ti hlášku neukáže
echo "Děkuji ti, že jsi něco napsal.";
}
else
echo "Nenapsal jsi vůbec nic";
?>
Ještě lepší způsob:
<?php
if($_POST){
if($_POST['nazev_name']){ //isset by ti pustil klidně i null, ale pole by existovalo
echo 'Pole obsahuje aspoň 1 znak.';
}
}
?>
Já jsem jen uváděl jaký je rozdíl mezi $_POST a isset($_POST).
Zobrazeno 6 zpráv z 6.