Autor Zpráva
Axamith
Profil
Formulář v 1.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>						
<form action="2.php" method="POST">							 							
<input type="submit" name="T"value="T3"></form>
</body>
</html>


spustí 2.php

<?php
if (isset($_POST["form1"]))
{ $dis1 = " disabled"; $dis2 = ""; }
else
{ $dis2 = " disabled"; $dis1 = "";}
?>
<?php
$T = $_POST['T'];
echo $T;
?>
<html>	 	
<head>		 		
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">	 	
</head>	 	
<body>						 						 		
<form class="popisy" action=" " method="POST">  						   							 			
<input type="text" accesskey="j" size="50" name="T3" value="<?php echo $T;?>" disabled></form>						 						 
<form action=" " method="POST">
<input type="submit" name="form1" value="Vložit"<?php echo $dis1; ?></form>
<form action=" " method="POST">
<input type="submit" value="Storno"<?php echo $dis2; ?></form>						 
</body>
</html>


Do vstupního pole se zapíše proměnná $T odeslaná z formuláře 1.php Tlačítko "vložit" aktivuje tlačítko "storno" a zároveň deaktivuje tlačítko "vložit". Potud v pořádku, ale při tomto procesu se smaže proměnná $T a vyskočí chybová hláška. Co způsobí odstranění proměnné?
fuckin
Profil
Tak pochopitelně že se smaže. Při refreshi ti minulý POST zmizí. Pak je dostupná v $_POST['T3']
Axamith
Profil
Aha, takže proměnná má jepičí život, je uchovaná pouze po dobu běhu scriptu, který ji zapíše do
 value="<?php echo $T;?>" 
a potom se smaže. Při zpracování tlačítka "vložit" už neexistuje a není co vkládat. Jde tohle nějak ošetřit?
Axamith
Profil
Nějak se mi nedaří poprat se s výše uvedeným problémem. Ještě jsem poupravil scripty :
1.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>                        
<form action="2.php" method="POST">							
<input class="submit" type="submit" name="T3" value="Výdej T3">
<input class="submit" type="submit" name="T3" value="Výdej T4"></form>
</body>
</html>


2.php
<?php
// Off/On  "Vložit"-"Storno"-"Další"
if (isset($_POST["form1"]))
{ $dis1 = " disabled"; $dis2 = ""; }
else
{ $dis2 = " disabled"; $dis1 = "";}
// načtení z 1.php
$T3 = $_POST['T3'];
//přiřazení Tx
if ($T3 == "Výdej T3")
$Tx = "T3";
else
$Tx = "T4"; 
?>
<html>         
<head>                 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">         
</head>         
<body>                                                          
<form action=" " method="POST">                                                                      
<input type="text" accesskey="j" size="50" name="T3" value="<?php echo $Tx;?>" disabled></form>                                                  
<form action=" " method="POST">
<input type="submit" name="form1" value="Vložit"<?php echo $dis1; ?></form>
<form action=" " method="POST">
<input type="submit" value="Storno"<?php echo $dis2; ?></form>                         
</body>
</html>


Měl jsem za to, že formulář odesílá parametr "name", ale můj formulář 1.php odešle do $_POST['T'] hodnotu "value". Toto jsem odfiltroval podmínkou, ale pořád se mi nedaří tuto hodnotu udržet ve vstupním poli po odeslání "vložit".
nightfish
Profil
Axamith:
pravděpodobně bude stačit smazat </form> na řádcích 21 a 23, a <form action=" " method="POST"> na řádcích 22 a 24
Axamith
Profil
Tak to nebude ono. Formuláře za sebou mají opodstatnění. Ale i tak neustále hlásí nedefinovanou proměnnou.
nightfish
Profil
Axamith:
Tak to nebude ono. Formuláře za sebou mají opodstatnění.
Bereš v úvahu fakt, že se ti odešlou jenom ta pole formuláře, která jsou obsažena ve formuláři, v němž jsi stiskl odesílací tlačítko?
Axamith
Profil
V PHP jsem začátečník, tak trochu zrekapituluji funkci.
1.php odešle hodnotu
$_POST['Výdej T3'] 
nebo
 $_POST['Výdej T3']
, podle toho, které odesílací tlačítko zmáčknu.
Spustí se mi 2.php Následující kód
$T3 = $_POST['T3'];
//přiřazení Tx
if ($T3 == "Výdej T3")
$Tx = "T3";
else
$Tx = "T4";

vyhodnotí podmínku a přiřadí parametru Tx hodnotu T3 nebo T4 ( podle odeslání z 1.php ) a zapíše do vstupního pole. Potud v pořádku. Měl jsem za to, že proměnná Tx je aktivní, dokud ji nesmažu nebo nepřepíšu jinou hodnotou. Při odeslání "Vložit" se odešle hodnota
$_POST['Form1'] 
(asi ) A tím končím, nevím jak dál.
nightfish
Profil
Axamith:
ěl jsem za to, že proměnná Tx je aktivní, dokud ji nesmažu nebo nepřepíšu jinou hodnotou.
V rámci jednoho provedení skriptu. Když odešleš další formulář, spustí se skript znovu - a nepamatuje si (obvykle) žádnou historii proměnných.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0