Autor | Zpráva | ||
---|---|---|---|
Fefe Profil * |
#1 · Zasláno: 8. 7. 2011, 13:59:35
neviem si uz rady s tymto
mam jeden input a jeden select. HTML <input name="kilometre" type="text" size="30" /> <select name="pocet" size="0"> <option value="">Vyberte množstvo</option> <option value="10">10</option> <option value="20">20</option> </select> PHP if (isset($_POST['odoslat'])){ if ($kilometre && $pocet){ $f= $kilometre * $pocet; $a= "Celkom $f"; }} Premennu $a potom zobrazim ako vysledok, ale vzdy mi to vyhodi cislo 1 nerozumiem preco to nevynasobi cisla medzi sebou ak zadam neico do inputu a vyberiem nieco zo selektu tak vzdy je vysledok 1. V com robim chybu? Dakujem |
||
laijk Profil |
#2 · Zasláno: 8. 7. 2011, 14:13:37 · Upravil/a: laijk
podla mňa to má byť takto:
if (isset($_POST['odoslat'])){ if ($_POST['kilometre'] && $_POST['pocet']){ $f= $_POST['kilometre'] * $_POST['pocet']; $a= "Celkom $f"; }} a premenné $kilometre a $pocet bralo ako typ boolean, aspoň oskúšaj :) |
||
Fefe Profil * |
#3 · Zasláno: 8. 7. 2011, 14:18:32
laijk:
vyskusal som vysledok je 0 |
||
Taps Profil |
#4 · Zasláno: 8. 7. 2011, 14:29:37
Fefe:
vlož sem celý kod formuláře |
||
laijk Profil |
#5 · Zasláno: 8. 7. 2011, 14:30:59
vlastne skôr takto, ale asi bude chyba v kode ktorý si tu nedal
if (isset($_POST['odoslat'])){ if ((isset($_POST['kilometre'])) && (isset($_POST['pocet']))){ $f= $_POST['kilometre'] * $_POST['pocet']; $a= "Celkom $f"; }} |
||
Fefe Profil * |
#6 · Zasláno: 8. 7. 2011, 21:42:39
Prikladam cely kod:
Jedna sa o taku kalkulacku autodopravy ma to vypocitat cenu ale nejde mi to vynasobit medzi tymi dvoma poliami neviem v com je chyba. Neni to kompletne jedna sa len o predbezny navrh funkcnosti ale zlyhal som na takejto banalite a neviem si stym rady. <?php if (isset($_POST['odoslat'])){ $i=NULL; $a=NULL; $f=NULL; if (isset($_POST['preprava']) > 0) { $preprava=true; }else{ $preprava=false; $i .="<span>Vyberte jednu z moznosti prepravy!</span><br>"; } if (strlen($_POST['kilometre']) > 0) { $kilometre=true; }else{ $kilometre=false; $i .="<span>Vyplnte policko s poctom kilometrov!</span><br>"; } if (strlen($_POST['dlzka']) > 0) { $dlzka=true; }else{ $dlzka=false; $i .="<span>Vyplnte prosim vsetky polia (Rozmer palety)!</span><br>"; } if (strlen($_POST['pocet']) > 0) { $pocet=true; }else{ $pocet=false; $i .="<span>Vyberte prosim mnozstvo paliet! </span><br>"; } if ($kilometre&& $pocet&& $preprava&& $dlzka){ $f= $kilometre* $pocet; $a= "Cena celkom $f"; } } ?> <form action="forms.php" method="post" name="formular"> <div class="forms"><table> <tr> <td colspan="2" style="text-align:center"> <?php if (isset($i)){ echo '<p>', $i, '</p>'; }else if (isset($a)){ echo '<p>', $a, '</p>'; } ?></td> </tr> <tr> <td>Druh prepravy:</td> <td>Jednorázová: <input name="preprava" type="radio" value="jednorazova" /> Pravidelná: <input name="preprava" type="radio" value="pravidelna" /></td> </tr> <tr> <td>Preprava v (Km):</td> <td><input name="kilometre" type="text" size="30" /></td> </tr> <tr> <td>Rozmer palety / prepravovanej zásielky(mm)</td> <td><input name="dlzka" type="text" size="10" /> <input name="dlzka" type="text" size="10" /> <input name="dlzka" type="text" size="10" /></td> </tr> <tr> <td>Počet paliet / zásielok:</td> <td><select name="pocet" size="0"> <option value="">Vyberte množstvo paliet</option> <option value="0,5">1-5</option> <option value="0,6">1-16</option> </select></td> </tr> |
||
panther Profil |
#7 · Zasláno: 8. 7. 2011, 22:20:39 · Upravil/a: panther
Fefe:
když vyberu to podstatné z tvého kódu, tak: $kilometre = true; $pocet = true; $kilometre * $pocet = true * true = ... Když jsme u toho, zkoušel jsi, co se stane, když někdo do uvedených polí zadá nečíselné hodnoty? |
||
Fefe Profil * |
#8 · Zasláno: 8. 7. 2011, 22:24:35
viem ze to neni v podstate niako ochranene to teraz nie je podstatne pretoze stranky sa zacnu robit az ked vyriesim tento formular preto je to len taky "nacrt" funkcnosti aby som to mohol odprezentovat ale stojim na tomto nasobeni ako nerozumiem preco to nechce nasobit!
|
||
panther Profil |
#9 · Zasláno: 8. 7. 2011, 22:41:15
Fefe:
čti pořádně, co píšu. Odpověď na tvou otázku (byť s vykřičníkem na konci) „preco to nechce nasobit!“ jsi dostal. Ale jestli ani tak nevíš, tak se na ten kšeft raději vykašli a uč se. |
||
Taps Profil |
#10 · Zasláno: 8. 7. 2011, 23:01:12
Fefe:
zkus níže uvedené, změny jsem ti vyznačil. V případě desetinných míst se v php používá tečka! <?php if (isset($_POST['odoslat'])){ if (isset($_POST['preprava']) > 0) { $preprava=$_POST['preprava']; }else{ $preprava=false; $i .="<span>Vyberte jednu z moznosti prepravy!</span><br>"; } if (strlen($_POST['kilometre']) > 0) { $kilometre=$_POST['kilometre']; }else{ $kilometre=false; $i .="<span>Vyplnte policko s poctom kilometrov!</span><br>"; } if (strlen($_POST['dlzka']) > 0) { $dlzka=$_POST['dlzka']; }else{ $dlzka=false; $i.="<span>Vyplnte prosim vsetky polia (Rozmer palety)!</span><br>"; } if (strlen($_POST['pocet']) > 0) { $pocet=$_POST['pocet']; }else{ $pocet=false; $i.="<span>Vyberte prosim mnozstvo paliet! </span><br>"; } if ($kilometre && $pocet && $preprava && $dlzka){ $a="Cena celkom: ".($kilometre*$pocet); } } ?> <form action="forms.php" method="post" name="formular"> <div class="forms"><table> <tr> <td colspan="2" style="text-align:center"> <?php if (isset($i)){ echo '<p>'.$i. '</p>'; }elseif (isset($a)){ echo '<p>'.$a. '</p>'; } ?> </td> </tr> <tr> <td>Druh prepravy:</td> <td>Jednorázová: <input name="preprava" type="radio" value="jednorazova" /> Pravidelná: <input name="preprava" type="radio" value="pravidelna" /></td> </tr> <tr> <td>Preprava v (Km):</td> <td><input name="kilometre" type="text" size="30" /></td> </tr> <tr> <td>Rozmer palety / prepravovanej zásielky(mm)</td> <td><input name="dlzka" type="text" size="10" /> <input name="dlzka" type="text" size="10" /> <input name="dlzka" type="text" size="10" /></td> </tr> <tr> <td>Počet paliet / zásielok:</td> <td><select name="pocet" size="0"> <option value="">Vyberte množstvo paliet</option> <option value="0.5">1-5</option> <option value="0.6">1-16</option> </select></td> </tr></table> <input type="submit" name="odoslat" value="odoslat"> </form> |
||
Fefe Profil * |
#11 · Zasláno: 9. 7. 2011, 20:49:58
Taps:
Dakujem za pekne rozpisane funguje to :) Len nerozumiem tomu $pocet=$_POST['pocet']; true |
||
laijk Profil |
#12 · Zasláno: 9. 7. 2011, 21:13:07
áno, $_POST['pocet'] je hodnota, ktorá sa priradí do premennej $pocet a s tou potom pracuješ,čiže to nebude true, ale to čo ti prišlo formulárom.
|
||
panther Profil |
#13 · Zasláno: 9. 7. 2011, 21:15:04
Fefe:
hodnota políčka (třeba 5) je v proměnné $_POST['pocet'] . Žádné přiřazení do $pocet provádět nepotřebuješ, můžeš pracovat rovnou s tímto.
Tys s tou hodnotou v $_POST['pocet'] nikde nepracoval, do matematiky jsi posílal dvě proměnné, obě s hodnotou true . Možná jsi nabyl mylného předpokladu, že proměnné $pocet a $_POST['pocet'] spolu mají něco společného. Nemají nic, jsou to dvě různé, jen se jmenují podobně (resp. proměnná se jmenuje stejně jako klíč pole _POST).
Ten výpočet lze provést nejsnáze takto: $a="Cena celkom: ".($_POST['kilometre']*$_POST['pocet']); |
||
Časová prodleva: 13 let
|
0