Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Skrypt liczący kalorie
Forum PHP.pl > Forum > Przedszkole
drzalek
Witam. Jestem nowy na forum. Php też jest nowością w moim zyciorysie. Uczę się go od jakichś dwóch tygodni i właśnie napotkałem na problem.
Potrzebuje utworzyć taki skrypt, w którym:
- użytkownik będzie z rozwijalnej listy, albo checkboxów (obojętne) wybierał kilka pozycji - chodzi dokładnie o produkty spożywcze,
- nastepnie po dokonaniu wyboru i po kliknieciu w przycisk formularza (powiedzmy "dodaj") zostanie przeniesiony na strone gdzie będą wypisane wybrane przez niego produkty spożywcze, przy czym przy każdym z tych produktów będzie okienko, w którym użytkownik będzie musiał podać wagę danego produktu
-po wpisaniu wartosci w okienka i po kliknieciu guzika (powiedzy "oblicz" tym razem) zostanie przeniesiony na strone, gdzie bedą znów wyświetlone nazwy produktów, które wybrał na początku i dodatkowo będzie wyświetlona wartość kaloryczna każdego produktu, ale powiększona o wagę, którą podał wcześniej użytkownik

I teraz tak: z dwoma pierwszymi punktami sobie poradziłem - utworzyłem formularz z checkbox'ów z nazwami produktów, każdemu nadałem nazwę: nazwa[], uzyskaną w ten sposób tablicę wydrukowałem na następnej stronie przy pomocy foreach - zresztą zamieszcze skrypt, żeby było jaśniej:

Kod pierwszej strony kalorie.html
  1. <form action="przetworzkalorie.php" method="post">
  2. <input type="checkbox" name="owoce[]" value="agrest" />agrest<br />
  3. <input type="checkbox" name="owoce[]" value="ananas" />ananas<br />
  4. <input type="checkbox" name="owoce[]" value="anans_syrop" />ananas w syropie<br />
  5. <input type="checkbox" name="owoce[]" value="arbuz" />arbuz<br />
  6. <input type="checkbox" name="owoce[]" value="awokado" />awokado<br />
  7. <input type="submit" value="dodaj" />
  8. </form>

Kod drugiej strony przetworzkalorie.php
  1. <form action="obliczkalorie.php" method="post">
  2. <table border="0">
  3. <tr>
  4. <?php
  5. foreach($owoce as $owocki)
  6. {
  7. echo'<td align="left">'.$owocki.'</td><td align="right"><input type="text" name="wartoscowoce[]" size="4" maxlength="4"/></tr><tr>';
  8. }
  9.  
  10.  
  11. ?>
  12. <tr><td colspan="2" align="center">
  13. <input type="submit" value="oblicz" />
  14. </td></table>
  15. </form>

No i teraz nie wiem jak zrobić następną stronkę.
Prawdopodobnie muszę dodać na początku zmienne tych wszystkich owoców z przypisanymi im wartościami kalorycznymi, żeby było z czego obliczyć. Ale nie wiem jak pobrać tylko te wartości, które będą odpowiadały tym wybranym przez użytkownika.

Jesli ktoś może mi pomóc, to będę bardzo zobowiązany :-)
remik09
hmm w formularzu chyba nie "owoce[]" tylko owoce[numerek]

a potem odbierasz to

  1. <?php
  2. $i = 0; // jesli pierwszy numerek to 0
  3. $ilosc = x // wpisujesz tu ostatni nr owoca
  4.  
  5. while ($i <= $ilosc) {
  6. $owoce[$i] = $_POST[owoce.$i];
  7. $i++;
  8. }
  9.  
  10. // a tutaj poprostu to dodaj
  11. ?>
siemakuba
Wydaje mi się, że najlepiej chyba trzymać dane o kaloriach w tablicy, której klucze będą odpowiadać wartościom z formularza, np.
  1. <?php
  2. $kalorie = array('agrest'=>12, 'ananas'=>100);
  3. ?>

Dalej, wartości wybrane przez użytkownika masz w $_POST['owoce'], tak?
Iterujesz więc przez $_POST['owoce'], i za każdym razem pobierasz odpowiednią wartość z tablicy $kalorie.

izi pizi dżapanizi :)

pozdr.
drzalek
Dzięki wielkie, poradziłe sobie w końcu biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.