Autor Zpráva
alois
Profil
Je možné, že si php nedokáže poradit se dvěma textareama ve formuláři ? Když jednu nevyplním a kliknu na odeslat
<input name="submit" class="submit" type="submit" value="Odeslat" />
, tak se to odešle $_POST['submit'] existuje, když vyplním obě dvě textarei a odešlu tak $_POST['submit'] neexistuje. Nevíte?

Abych se ale přiznal, zatím jsem neviděl formulář se dvěma textareama.....
Hugo
Profil
Hoď sem celý kód formuláře. PHP určitě zvládně několik odeslaných údajů. Nemáš třeba stejné názvy těch polí?
WertriK
Profil *
Myslite ze PHP pozna ze ta promenna je z textarey a ta je z inputu ?
Bylo by zajimave kdyby v php.ini byla moznost zadat maximum textarey ;)
Meldo
Profil
WertriK
Bylo by zajimave kdyby v php.ini byla moznost zadat maximum textarey ;)

a naco? myslim, ze by to bolo zbytocne. Nahraditelne pomocou strlen();
alois
Profil

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" onsubmit="return kontrola(this);">
<table>
<tr>
<td class="napis"><b>Jméno: </b></td>
<td class="inpu"><input type="text" name="name" value="" size="30" /></td>
<td class="zbytek">Max 100 znaků</td>
</tr>
<tr>
<td class="napis"><b>Nadpis:</b></td>
<td class="inpu"><input type="text" name="nadpis" value="" size="40"/></td>
<td class="zbytek">Max 200 znaků</td>
</tr>
</table>
<fieldset>
<p>Nadpis, který bude viděn na první stránce</p>
<textarea class="predtext" name="predtext" rows="" cols=""></textarea>
<div>
<span><b>Text zprávy</b></span>
<a href="JavaScript:paste_strinL('tučný text')" onMouseOver="window.status='Tučné písmo'; return true" onMouseOut="window.status=''; return true"><img src="img/button_bold.gif" width="23" height="22" alt="Tučné" /></a>
<a href="JavaScript:paste_strinL('italický text')" onMouseOver="window.status='Kurzíva'; return true" onMouseOut="window.status=''; return true"><img src="img/button_italic.gif" width="23" height="22" alt="Kurzíva" /></a>
<a href="JavaScript:paste_strinL('[u]podtržený text[/u]')" onMouseOver="window.status='Podtržený text'; return true" onMouseOut="window.status=''; return true"><img src="img/button_underlined.gif" width="23" height="22" alt="Podtrženo" /></a>
<span>&lt;-možnosti formátování</span>
</div>
<textarea class="text" name="text" rows="" cols=""></textarea>
<input name="submit" class="submit" type="submit" value="Odeslat" />
</fieldset>
</form>




$pridavani=false;
if (isset($_POST['submit'])){
$pridavani=true;
echo " submitw ";
if (isset($_POST['name'])) {
$jmeno=$_POST['name'];
echo " jmeno ";}
else $pridavani=false;
if ($jmeno=="") $pridavani=false;
if (isset($_POST['nadpis'])){
$nadpis=$_POST['nadpis'];
echo " nadpis ";}
else $pridavani=false;
if ($nadpis=="") $pridavani=false;
if (isset($_POST['predtext'])){
$predtext=$_POST['predtext'];
echo " predtext ";}
else $pridavani=false;
if ($predtext=="") $pridavani=false;
if (isset($_POST['text'])) {
$text=$_POST['text'];
echo " text ";}
else $pridavani=false;
if ($text=="") $pridavani=false;
}



if ($pridavani) {
neco se provede
} else echo "nepridano";


Když vyplním obě 2 texarei tak se vypise akorat "nepridano"
A když jen jednu z nich tak se vypíše "submitw jmeno nadpis predtext text nepridano" jakože vše existuje.
Leo
Profil
Zacnete tim, ze si na cilove strance vypiste

echo '<pre>';
print_r($_POST);
echo '</pre>';

nic vic. Pokud nevite, co vam do skriptu jde za promenne, jak je muzete zpracovavat? Leo
krteczek
Profil
<?php

$pridavani=false;

if (isset($_POST['submit']))
{
$pridavani=true;

if (!empty($_POST['name']))
{
$jmeno=$_POST['name'];
echo "<br> jmeno: ".$jmeno;
}
else
{
$pridavani=false;
}
if (isset($_POST['nadpis']))
{
$nadpis=$_POST['nadpis'];
echo "<br><br> nadpis ".$nadpis;
}
else
{
$pridavani=false;
}
if (isset($_POST['predtext']))
{
$predtext=$_POST['predtext'];
echo "<br><br> predtext: ".$predtext;
}
else
{
$pridavani=false;
}
if (isset($_POST['text']))
{
$text=$_POST['text'];
echo "<br><br> text: ".$text;
}
else
{
$pridavani=false;
}
}
if ($pridavani)
{
//neco se provede
echo "<br><br>jooooooooo pridano";
}
else
{
echo "<br><br>nepridano";
}
?>

krteczek
tiso
Profil
Musíš tam mať:
<form enctype="multipart/form-data" ...

potom by to malo ísť
Leo
Profil
"Musíš tam mať:

<form enctype="multipart/form-data" ..."

A to si myslite proc? Jak tam zadny input type="file" nevidim, Leo
Retal
Profil
tiso
<form enctype="multipart/form-data"

se používá pro upload souborů, ne v tomto případě.

alois
Tuším zradu v return kontrola(this) :)
Jak říkají ostatní - nejdřív sám debugguj kód, vypiš si všechny důležité proměnné, sleduj, jak se mění, atd.

OT:
italický text je česky kurzíva :)
tiso
Profil
...stáva sa... Chyba medzi stoličkou a klávesnicou...
Anonymní
Profil *
Použil jsem

echo '<pre>';
print_r($_POST);
echo '</pre>';

Ale to jen potvrdilo co píšu

Array
(
[name] => dfsf df
[nadpis] => fsd fsdff
[predtext] =>
[text] => f fe af sdfasdfwe wef tučný text
[submit] => Odeslat
)

A to když jsem jednu z textareí nenaplnil



A když naplním všechny inputy a textarei tak to vypíše

Array
(
)


A to je ten problém na který jsem ze začátku myslel....

I kód od krteczka měl stejný efekt.
Javascritová kontrola(this) na to taky neměla vliv

Jako kdyby dvě textarei nešly v jednom formuláři....hledal jsem na internetu, ale nic jsem o tom nenašel....
alois
Profil
Zapomněl jsem se přihlásit .....
alois
Profil
debuggovat kód jsm zkoušel přes hodinu a došel jsem k tomu, že když jednu textareu nevyplním, funguje to správně. Pokud vyplním vše - proměnné přestanou existovat, ale proč na to jsem nenarazil.
Leo
Profil
No schvalne si ted vas kod zkusit, v nejake hole verzi, nejak se mi to nezda :-) Leo
Leo
Profil
Tohle:

<form action="test-post.php" method="post">
<input type="text" name="name" value="" size="30"><br>
<input type="text" name="nadpis" value="" size="40">
<textarea name="predtext" rows="" cols=""></textarea><br>
<textarea name="text" rows="" cols=""></textarea>
<input name="submit" type="submit" value="Odeslat">
</form>

mi posila vse jak ma, mate nejaky jiny bordel v kodu, Leo
alois
Profil
Snad najdu , ale v těch texareích to teda nebude. Zkusil jsem nevyplnit jeden z inputů, a proměnné existovali, nefunguje jak má pouze když vyplním vše.....jdu hledat opět
Leo
Profil
Zkuste vyhodit uplne ten JavaScript. Leo
alois
Profil
Bohužel chyba byla trochu jinde ....
Nevšiml jsem si nezakomentované ochrany proti opětovnému poslání

// header("location: index.php");
// exit;
alois
Profil
Díky ale všem zúčastněným za ochotu pomoct
Josef Alois .....
Leo
Profil
O boze... :-) Leo
krteczek
Profil
nj tys tu neuvedl cely kod, to co jsi to uvedl jsem si pročistil a fongovalo to perfektně, jinak bych to tady nedával. krteczek
alois
Profil
Ano když bylo vše v pořádku - tedy vyplněné vše, mohl se provést header("location: index.php"); tam již ale POST proměnné neexistují, jak jsem viděl :-) a když jsem cokoliv nevyplnil, neprovedl se header("location: index.php"); a vše se mi jevilo v pořádku :-)
alois
Profil
krteczek
, nepovažoval jsem další kód za důležitý protože jsem přehlídl přesměrování ..... moje chyba
Anonymní
Profil *
dddddd
Toto téma je uzamčeno. Odpověď nelze zaslat.