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
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
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
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);
(místo celého toho bloku foreach)

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
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
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!

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: