Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] porównanie wartości z tablic z innymi
Forum PHP.pl > Forum > Przedszkole
dekrzycho
Witam,
Mam tablice z danymi o postaci dane[msp,003,vt03] wartości te wpisują się z formularza poprzez zaznaczony checkbox.
Jeśli w tablicy dane[] wystąpią pewne zwroty to skrypt musi mi coś zrobić....
oto kawałek skryptu:

  1. <?php
  2.  
  3. //pobieram dane do tabeli
  4.  
  5. $dane[]=$_POST['dane[]'];
  6.  
  7. //przeglądam tabele
  8.  
  9. for ($i=0;$i<=2;$i++)
  10. {
  11. if ($dane[$i] == "msp")
  12. {        
  13. zrób coś tam....
  14. }else
  15. {
  16. zrób coś tam...
  17. }
  18.  
  19. ?>


Podobnie dla pozostałych wartości z tablicy dane[].

Ten skrypt mi nie działa. Wyświetliłem sobie wartości w tablicy i jest ok.
ale warunki mi się nie wykonują więc pewnie popełniam błąd w instrukcji if.
Może podpowiecie mi co jest nie tak.
P.S. W tablicy są same stringi...
nospor
  1. <?php
  2. $dane=$_POST['dane'];
  3. foreach ($dane as $d)
  4. echo $d;
  5. ?>

pod warunkiem ze dobrze nadales nazwy w formularzu
dekrzycho
Cytat(nospor @ 2006-03-30 11:44:40)
  1. <?php
  2. $dane=$_POST['dane'];
  3. foreach ($dane as $d)
  4. echo $d;
  5. ?>

pod warunkiem ze dobrze nadales nazwy w formularzu

Dzieki za podpowiedź ale ja mam tablice dane[]. a z formularza w ten sposób przesyłam informacje...
  1. <input name="dane[]" class="checkbox" type="checkbox" value="msp">
  2. <input name="dane[]" class="checkbox" type="checkbox" value="003s">
  3. <input name="dane[]" class="checkbox" type="checkbox" value="vt03">

musze tak mieć ponieważ mam skrypt w JS który mi sprawdza czy jest zaznaczony przynajmniej jeden checkbox.
Musze pobrać z formularza całą tablice wiec $dane[]=$_POST['dane[]'];
Nie rozumiem jak w moim przypadku mam zastosować funkcję foreach?questionmark.gif
I co z moimi if ami.
nospor
@dekrzycho z calym szacunkiem, ale jesli ktos podaje ci rozwiąznie (kod) i ten ktos wydaje się byc osobą z większym doswiadczeniem niż ty, to zamiast mowic, ze podane rozwiazanie jest bledne, wykonaj je najpierw i sprawdź.
Tak jak ci pokazalem, wlasnie odbiera się tablicę z formularza. Więc Twoj sposob jest zdecydowanie zly.

Cytat
Nie rozumiem jak w moim przypadku mam zastosować funkcję foreach?questionmark.gif
Zajrzyj do manuala a sie dowiesz.
Qvazar
  1. <?php
  2.  
  3. //pobieram dane do tabeli
  4.  
  5. $dane[]=$_POST['dane[]'];
  6.  
  7. //przeglądam tabele
  8.  
  9. for ($i=0;$i<=2;$i++)
  10. {
  11.  if ($dane[$i] == "msp")
  12. {
  13. zrób coś tam....
  14. }
  15. else
  16. {
  17. zrób coś tam...
  18. }
  19. } /* <-brakuje */
  20.  
  21. ?>
kszychu
Kurde, następny..... @Qvazar: weź nie pisz takich głupot!
  1. <?php
  2. $dane = $_POST['dane'];
  3. ?>

i co by to nie było, tablica nie tablica, przypisze się poprawnie!
dekrzycho
Cytat(nospor @ 2006-03-30 12:17:59)
@dekrzycho z calym szacunkiem, ale jesli ktos podaje ci rozwiąznie (kod) i ten ktos wydaje się byc osobą z większym doswiadczeniem niż ty, to zamiast mowic, ze podane rozwiazanie jest bledne, wykonaj je najpierw i sprawdź.
Tak jak ci pokazalem, wlasnie odbiera się tablicę z formularza. Więc Twoj sposob jest zdecydowanie zly.

Cytat
Nie rozumiem jak w moim przypadku mam zastosować funkcję foreach?questionmark.gif
Zajrzyj do manuala a sie dowiesz.

Przepraszam, nie chciałem nikogo obrazić. Jestem początkujący i faktycznie niewiele wiem.
Masz rację, źle robiłem z przekazaniem wartości z formularza choć wyglądało ok.
Wzorując się na twojej podpowiedzi zrobiłem coś takiego....

  1. <?php
  2.  
  3. $chex=$_POST['chex'];
  4. foreach ($chex as $nazwa)
  5. {
  6. // MSP422
  7. if ($nazwa=="msp")
  8. {
  9. jakies przeliczenia
  10. $Lp=$Lp+1;
  11. $tresc_1='kod html':
  12. }else
  13. {
  14. $tresc_1='';
  15. $Lp=$Lp;
  16. }
  17.  
  18. if ($nazwa=="003s")
  19. {
  20. jakies przeliczenia
  21. $Lp=$Lp+1;
  22. $tresc_2='kod html':
  23. }else
  24. {
  25. $tresc_2='';
  26. $Lp=$Lp;
  27. }
  28.  
  29. if ($nazwa=="vt03")
  30. {
  31. jakies przeliczenia
  32. $Lp=$Lp+1;
  33. $tresc_3='kod html':
  34. }else
  35. {
  36. $tresc_3='';
  37. $Lp=$Lp;
  38. }
  39. echo $nazwa;
  40. }
  41.  
  42. ?>

i zawsze działa dla ostatniego warunku. nie rozumiem jak działa foreach!!!!
nospor
ty ogolnie nie lapiesz troche podstawowych pojec, a nie tylko foreach. (nie mowie tego by cie obrazić, tylko by powiedziec w czym problem) winksmiley.jpg
Twoj kod wygląda trochę dziwnie sądząc po tym czego odniego oczekujesz.
A wyjaśnij dokladnie, co chcesz by sie stalo, gdy zaznaczymy dane checkboxy.

ps:
Cytat
nie chciałem nikogo obrazić.
Tu za takie rzeczy nikt sie nie obraza. Ja ci tylko zwrocilem uwagę winksmiley.jpg

edit: mam nadzieje, ze zdajesz sobie sprawę, ze formularz wysyla tylko zaznaczone checkboxy.
edit2:
na chwile obecną, nie wiedząc oco ci dokladnie chodzi, zaproponowalbym ci cos takiego:
  1. <?php
  2.  
  3. $tresc_1='';
  4. $tresc_2='';
  5. $tresc_3='';
  6. $chex=$_POST['chex'];
  7. foreach ($chex as $nazwa)
  8. {
  9. // MSP422
  10. if ($nazwa=="msp")
  11. {
  12. //jakies przeliczenia
  13. $Lp=$Lp+1;
  14. $tresc_1='kod html':
  15. }
  16. elseif ($nazwa=="003s")
  17. {
  18. //jakies przeliczenia
  19. $Lp=$Lp+1;
  20. $tresc_2='kod html':
  21. }elseif ($nazwa=="vt03")
  22. {
  23. //jakies przeliczenia
  24. $Lp=$Lp+1;
  25. $tresc_3='kod html':
  26. }
  27. echo $nazwa;
  28. }
  29.  
  30. ?>
dekrzycho
Cytat(nospor @ 2006-03-30 13:45:24)
ty ogolnie nie lapiesz troche podstawowych pojec, a nie tylko foreach. (nie mowie tego by cie obrazić, tylko by powiedziec w czym problem) winksmiley.jpg
Twoj kod wygląda trochę dziwnie sądząc po tym czego odniego oczekujesz.
A wyjaśnij dokladnie, co chcesz by sie stalo, gdy zaznaczymy dane checkboxy.

ps:
Cytat
nie chciałem nikogo obrazić.
Tu za takie rzeczy nikt sie nie obraza. Ja ci tylko zwrocilem uwagę winksmiley.jpg

edit: mam nadzieje, ze zdajesz sobie sprawę, ze formularz wysyla tylko zaznaczone checkboxy.
edit2:
na chwile obecną, nie wiedząc oco ci dokladnie chodzi, zaproponowalbym ci cos takiego:
  1. <?php
  2.  
  3. $tresc_1='';
  4. $tresc_2='';
  5. $tresc_3='';
  6. $chex=$_POST['chex'];
  7. foreach ($chex as $nazwa)
  8. {
  9. // MSP422
  10. if ($nazwa=="msp")
  11. {
  12. //jakies przeliczenia
  13. $Lp=$Lp+1;
  14. $tresc_1='kod html':
  15. }
  16. elseif ($nazwa=="003s")
  17. {
  18. //jakies przeliczenia
  19. $Lp=$Lp+1;
  20. $tresc_2='kod html':
  21. }elseif ($nazwa=="vt03")
  22. {
  23. //jakies przeliczenia
  24. $Lp=$Lp+1;
  25. $tresc_3='kod html':
  26. }
  27. echo $nazwa;
  28. }
  29.  
  30. ?>

Tak wiem że nie jestem nawet dobry w pisaniu php. nie tylkopodstaw mi brakuje....
Wracając do mojego skryptu to chekboxy uzalezniają mi kod html który wstawiam do treści maila a ten zostaje wysłany na dany adres.
jeżeli zostanie zaznaczony checkbox to zmienna treść zostaje uzupełniona o pewne wartości tj, ceny, ilość sztuk itp. całość tworzy jeden wiersz w tabeli.
nospor
czyli to ma byc jedna zmienna treść? No to robisz jak ci napisalem, z lekką zmianą:
  1. <?php
  2. $tresc='poczatkowa jakas tresc';
  3. $chex=$_POST['chex'];
  4. foreach ($chex as $nazwa)
  5. {
  6. // MSP422
  7. if ($nazwa=="msp")
  8. {
  9. //jakies przeliczenia
  10. $Lp=$Lp+1;
  11. $tresc.='kod html':
  12. }
  13. elseif ($nazwa=="003s")
  14. {
  15. //jakies przeliczenia
  16. $Lp=$Lp+1;
  17. $tresc.='kod html':
  18. }elseif ($nazwa=="vt03")
  19. {
  20. //jakies przeliczenia
  21. $Lp=$Lp+1;
  22. $tresc.='kod html':
  23. }
  24. echo $nazwa;
  25. }
  26. ?>
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.