| Autor | Zpráva | ||
|---|---|---|---|
| David1256 Profil |
#1 · Zasláno: 27. 11. 2010, 20:06:59 · Upravil/a: David1256
Dobrý den, potřeboval bych poradit, jak dělat checkbox formuláře v php, aby mi to pak vypsalo zaškrtnutá pole. Zatím mám kód nějak takto, ale je to pořád nějaký nedokonalý, protože mi to háže následující chyby a nevim, jak to opravit.
Warning: Variable passed to each() is not an array or object in c:\inet_srv\http\doc_root\formulare.php on line 51 zde 20 Notice: Undefined offset: 1 in c:\inet_srv\http\doc_root\formulare.php on line 44 zde 13 <form method="post">
<input type=checkbox name="penize[]" value="dolary"
<?php
if (isset($_POST["penize"])){
if ($penize[0]=="dolary" || $penize[1]=="dolary") echo "checked";}
?>
>Dolary
<input type=checkbox name="penize[]" value="libry"
<?php
if (isset($_POST["penize"])) {
if ($penize[0]=="libry" || $penize[1]=="libry") echo "checked"; }
?> > Libry
<input type=submit value=Potvrď>
<?php
if (isset($_POST["penize"]))
echo "Provdený výběr:";
while(List($h1,$h2)=Each($penize))
{if($h1>0) echo ", ";
echo $h2;}
?>
</form> |
||
| AM_ Profil |
#2 · Zasláno: 28. 11. 2010, 12:19:43
- kde se vezme proměnná $penize? zřejmě bys do ní nejdřív měl přiřadit $_POST['penize'] nebo používat přímo $_POST['penize'].
- each() se používá jinak, tipuji, že tenhle cyklus jsi odkudsi zkopíroval bez potuchy, jak each() funguje. Nevím ani, co to má dělat. - „($penize[0]=="libry" || $penize[1]=="libry")“ bych upravil na (in_array('libry', $penize)) |
||
| David1256 Profil |
#3 · Zasláno: 28. 11. 2010, 14:13:02 · Upravil/a: David1256
Když to změním na
(in_array('libry', $penize))<form method="post"> <input type=checkbox name="penize[]" value="dolary" > <input type=checkbox name="penize[]" value="libry"> Ten each sem vzal z knihy, ale nějak to tam není vysvětlené nebo jsem to asi nepochopil ale spíše ta první varianta. Jak byste teda řešili tento script? Zkrátka potřebuju, aby mi to po zaškrtnutí vypsalo to, co jsem zaškrtl. |
||
| David1256 Profil |
#4 · Zasláno: 30. 11. 2010, 11:16:16 · Upravil/a: David1256
Tak mi to pořád leželo v hlavě, proč to nefunguje a už jsem to vymyslel i pochopil.
<form method="post">
<input type=checkbox name="Penize[]" value="Dolary"
<? if (isset($_POST["Penize"])) {if(in_array('Dolary', $Penize)) echo "checked";} ?>>Dolary<br>
<input type=checkbox name="Penize[]" value="Libry"
<?if (isset($_POST["Penize"])) { if(in_array('Libry', $Penize)) echo "checked"; }?>>Libry<br>
<input type=checkbox name="Penize[]" value="Eura"
<?if (isset($_POST["Penize"])) {if(in_array('Eura', $Penize)) echo "checked";} ?>>Eura<br>
<input type=submit value="Vyberte"><br>
</form>
<? if (isset($_POST["Penize"])) {
echo "Provedený výběr: ";
while(List($h1,$h2)=Each($Penize)){
echo $h2. ' ';
}
}
?>
</form>
Díky AM_ za (in_array('libry', $penize))A jinak, jak ses ptal, jak to má fungovat, tak vysvětlím. Popřípadě mě opravte, jestli to říkám špatně. Zkrátka po zaškrtnutí políčka dolar je tvar pole Penize něco jako $Penize[0]=('Dolar') Takhle to funguje u všech checkboxů, když chci ke konci vypsat prvky pole tzn. dolary libry atd. musím funkcí List() převést prvky do proměnných $h1 a $h2 něco jako hodnota 1 a hodnota 2, hodnota 1 je je [0] hodnota 2 je ('Dolar), chci tedy vypsat $h2, ale aby se mi vypsaly všechny hodnoty tzn. [0][1][2] musím si vypomoct funkcí each, která vypíše všechny hodnoty tzn libry atd.. Snad to dobře chápu. |
||
|
Časová prodleva: 16 let
|
|||
0