IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: <textarea>

Aktivity
Avatar
Fikoun
Člen
Avatar
Fikoun:3.3.2015 22:52

Chtěl bych se zeptat jakou hodnotu má textarea když ji posílám přes POST. Nic do ní nezadám a odešlu- je NULL nebo Prázdný String. S tím se zeptam jestli mám textarea kontrolovat takto:

if ($_POST['textarea']) {...}
//       nebo takto
         if (isset($_POST['textarea'])) {...}

Zatím začínám s programováním takže možna je neco špatně tak prosím omluvte. Předem děkuji za odpovědi. :)

 
Odpovědět
3.3.2015 22:52
Avatar
Odpovídá na Fikoun
Uživatel sítě :3.3.2015 23:01

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.

Editováno 3.3.2015 23:03
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
3.3.2015 23:01
Chybami se člověk učí, běžte se učit jinam!
Avatar
Uživatel sítě :3.3.2015 23:19

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é..

Editováno 3.3.2015 23:20
Nahoru Odpovědět
3.3.2015 23:19
Chybami se člověk učí, běžte se učit jinam!
Avatar
katrincsak
Člen
Avatar
Odpovídá na Uživatel sítě
katrincsak:4.3.2015 23:11

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>
Editováno 4.3.2015 23:13
 
Nahoru Odpovědět
4.3.2015 23:11
Avatar
Odpovídá na katrincsak
Uživatel sítě :5.3.2015 0:52

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/fal­se) 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.';
  }
}
 ?>
Nahoru Odpovědět
5.3.2015 0:52
Chybami se člověk učí, běžte se učit jinam!
Avatar
katrincsak
Člen
Avatar
katrincsak:5.3.2015 21:36

Já jsem jen uváděl jaký je rozdíl mezi $_POST a isset($_POST).

 
Nahoru Odpovědět
5.3.2015 21:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.