Autor | Zpráva | ||
---|---|---|---|
lukasb Profil |
Prosím vás,mám takový problém.
potřebuji vypsat z databáze všechny termíny, což dělám v tomto souboru <?php $chata = $_POST["chata"]; if($chata == "chata1") $result=mysql_query("SELECT * FROM chata1", $spojeni); if($chata == "chata2") $result=mysql_query("SELECT * FROM chata2", $spojeni); if($chata == "chata3") $result=mysql_query("SELECT * FROM chata3", $spojeni); echo "<form method='post' action='index5.php'>"; echo "<input type='hidden' name='chata' value='$chata'> "; while ($zaznam = mysql_fetch_array($result)) : echo ($termin = $zaznam["termin"]); echo "<input type='checkbox' name='termin' value='$termin'>"; endwhile; echo "<input type='submit' name='souhrn' value='Dale'>"; echo "</form>" ?> ale následně potřebuji, když zaškrtnu dvě hodnoty, tak se mi v následném souboru zobrazí jen ta poslední čili jenom jedna. <?php $chata = $_POST['chata']; $termin = $_POST['termin']; ?> <?php echo $chata; ?> Vas vyber je:<?php echo $chata; ?> v terminu <?php echo $termin; ?> jde tedy nějak udělat, aby jsem si zaškrtl pomocí checkboxu dva termíny a tady v tom posledním echo se mi zobrazili obě hodnoty, ne jen ta jedna poslední? Díky! Moderátor nightfish: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
nightfish Profil |
#2 · Zasláno: 18. 12. 2009, 11:01:23
lukasb:
„echo "<input type='checkbox' name='termin' value='$termin'>";“ v prvním souboru echo "<input type='checkbox' name='termin[]' value='$termin'>"; a v druhém souboru to bude dostupné přes foreach ($termin as $t) { echo $t."<br>"; } |
||
lukasb Profil |
#3 · Zasláno: 18. 12. 2009, 11:21:05
díky moc!!! omlouvám se,to jsem nevěděl,že s eto musí dělat přes to pre.
ale chci se jesště zeptat na dvě věci. ted jsem tady našel,ze moderátor JOker to neřešil přes foreach,ale přes $termin .= kod. cili pres tu spojovací tečku, šlo by to také udělat??a co je lepší? a druhá věc: prosím tě, jak udělám to, aby mi zahlásilo chybu, kdyby nezaškrtl žádnou hodnotu? třeba jinde mám ošetřený formulář, že kdzž to nevyplním či špatně, vyskočí mi window s chybou, není nic vyplněné. jde to také udělat? díky! |
||
nightfish Profil |
#4 · Zasláno: 18. 12. 2009, 11:33:22 · Upravil/a: nightfish
lukasb:
„ted jsem tady našel,ze moderátor JOker to neřešil přes foreach,ale přes $termin .= kod. cili pres tu spojovací tečku, šlo by to také udělat??a co je lepší?“ to záleží na tom, co s tím chceš udělat... pokud ti stačí termíny vypsat třeba oddělené čárkou, tak zřejmě nejlepší bude echo implode(', ', $termin); „prosím tě, jak udělám to, aby mi zahlásilo chybu, kdyby nezaškrtl žádnou hodnotu? třeba jinde mám ošetřený formulář, že kdzž to nevyplním či špatně, vyskočí mi window s chybou, není nic vyplněné. jde to také udělat?“ na straně PHP to můžeš zjistit přes if (is_array($termin) && count($termin) == 0) echo "Nevybral jste žádný termín"; kontrolu spojenou s vyskočením okna je potřeba řešit javascriptem, přesný kód sem snad doplní někdo další |
||
lukasb Profil |
#5 · Zasláno: 18. 12. 2009, 16:57:25 · Upravil/a: lukasb
ja pak budu chtít ty udaje dat do formulaře a poslat pomocí php mejlem
takto vypadá celý druhý soubor <?php $chata = $_POST['chata']; $termin = $_POST['termin']; ?> <?php echo $chata; ?> Vas vyber je:<?php echo $chata; ?> v terminu <?php echo $termin; ?> <form method="post" action="mejl.php"> <input type="hidden" name="chata" value="<? echo $chata; ?>"> <input type="hidden" name="termin" value="<? echo $termin; ?>"> <input type="submit" value="Odeslat"> </form> co by si mi tedy doporučil??? ten první způsob či ten druhý?? a kam mám napsat to if (is_array.... ??? mohl by si mi to prosím nějak dát dohromady ,díky moc! |
||
lukasb Profil |
#6 · Zasláno: 20. 12. 2009, 22:42:30 · Upravil/a: lukasb
tak jsem to zkoušel před to foreach a háže mi to chyby :-(
Warning: Invalid argument supplied for foreach() prosím pomožte mi to opravit, tady jsou oba soubory. díky! tak se mi to podařilo už rozchodit, ale ted mi to neposílá z formuláře do pryč :-( první soubor <? $chata = $_POST["chata"]; if($chata == "chata1") $result=mysql_query("SELECT * FROM chata1", $spojeni); if($chata == "chata2") $result=mysql_query("SELECT * FROM chata2", $spojeni); if($chata == "chata3") $result=mysql_query("SELECT * FROM chata3", $spojeni); echo "<form method='post' action='index5.php'>"; echo "<input type='hidden' name='chata' value='$chata'> "; while ($zaznam = mysql_fetch_array($result)) : echo ($termin = $zaznam["termin"]); echo "<input type='checkbox' name='termin[]' value='$termin'>"; endwhile; echo "<input type='submit' name='souhrn' value='Dale'>"; "</form>" ?> druhý soubor <?php $chata = $_POST['chata']; $termin = $_POST['termin']; ?> <? foreach ($termin as $id => $hodnota) { echo ": ".$hodnota."<br />"; } ?> Vas vyber je:<?php echo $chata; ?> v terminu <?php echo $hodnota; ?> <form method="post" action="index6.php"> <input type="hidden" name="chata" value="<? echo $chata; ?>"> <input type="hidden" name="termin" value="<? echo $hodnota; ?>"> <input type="submit" value="Odeslat"> </form> takto mi to funguej pouze vypsat z echa u foreach, ale uz ne formulářem a nasledně poslat mejlem :-(. vidí někdo chybu,díky! P.S: kam mám napsat ten kod na detekci nevypněného terminu jak napsal nightfish? díky! |
||
Časová prodleva: 15 let
|
0