Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekazywanie tablicy w POST
Forum PHP.pl > Forum > Przedszkole
viamarimar
Chyba moje pytanie odnosi się bardziej to tego że nie umiem tego zrobić i jak to zrobić no ale dobra przejdźmy do rzeczy bo początek nie zachęca.
Tworze cos w rodzaju konfiguratora zamowien, problem jest z dodatkami gdzie mozna wybrac wiecej niz jedna opcje.

To jest skrypt ktory pobiera i wyswietla z bazy wszystkie dodatki, jak widac w name ma tablice ..
  1.  
  2. $wynik = mysql_query("SELECT * FROM lab5_dodatki") or die('Błąd zapytania');
  3. if(mysql_num_rows($wynik) > 0) {
  4. while($row = mysql_fetch_assoc($wynik)) {
  5.  
  6. echo "<label><span><input class='wpis' type='checkbox' name='dodatek[]' value=".$row['d_id'].">".$row['d_nazwa']."</input></label></span>";
  7. }
  8. }
  9.  


teraz pokazuje wybrany dodatek:

  1. //DODATKi
  2. if (isset($_POST['dodatek'])) {
  3. $numer_dodatku = $_POST['dodatek'];
  4. $count = count($numer_dodatku);
  5. }
  6.  
  7. if (empty($numer_dodatku)) {
  8. echo "<hr>";
  9. echo "<h2>DODATKI:</h2>";
  10. echo "<table border='1' class='optional_content'>";
  11. echo "<div class='info'>Nie wybrałeś dodatków!</div>";
  12. echo "<div class='info2'>Dodatki nie są obowiązkowe.<br />Jeśli jednak chcesz z nich skorzystać musisz powrócić do poprzedniej strony!</div>";
  13. } else {
  14. if ($count <= 3) {
  15. echo "<hr>";
  16. echo "<h2>DODATKI:</h2>";
  17.  
  18. echo "<table border='1' class='content'>";
  19. echo "<tr>";
  20.  
  21. echo "</tr>";
  22.  
  23.  
  24.  
  25. $wynik = mysql_query("SELECT * FROM lab5_dodatki") or die('Błąd zapytania');
  26. if(mysql_num_rows($wynik) > 0) {
  27. while($row = mysql_fetch_assoc($wynik)) {
  28.  
  29. foreach($_POST[dodatek] as $numer_dodatku){
  30. if ($numer_dodatku == $row['d_id']) {
  31. echo "<tr>";
  32. echo "<td bgcolor='#9EC197'>";
  33. $cena_dodatku = $row['d_cena'];
  34. $cena_dodatku1[] .= $row['d_cena'];
  35. $numer_dodatku .= $row['d_id'];
  36. $nazwa_dodatku = $row['d_nazwa'];
  37. echo $row['d_nazwa'];
  38. echo "</td>";
  39. echo "<td width='60px' align='center' bgcolor='#F4ADAD'>";
  40. echo $cena_dodatku. " zł";
  41.  
  42.  
  43. echo "</td>";
  44. echo "</tr>";
  45.  
  46. }
  47. }
  48.  
  49.  
  50. }
  51. }
  52.  
  53. echo $cena_dodatku1;
  54.  
  55.  
  56. $cena_dodatkow = array_sum($cena_dodatku1);
  57.  
  58. echo "</table><br />";
  59.  
  60.  
  61.  
  62. } elseif ($count > 3) {
  63. echo "<hr>";
  64. echo "<h2>DODATKI:</h2>";
  65. echo "<div class='info'>Możesz wybrać tylko 3 opcje!</div>";
  66. echo "<div class='info2'>Maksymalna ilość dodatków do wybrania to 3!<br /> Jeśli chcesz skorzystać z tej opcji wróć do poprzedniej strony! W przeciwnym razie wybrane opcje nie zostaną uwzględnione przy zamówieniu!</div>";
  67. }
  68. }


Problem zaczyna sie tu bo poza dodatkami sa inne rzeczy w zamowieniu, czyli:
twoje zamowienia: blblbl..

Ten kod powinien wyswietlic wlasnie dodatki a nie dziala, nie wiem czemu..?
  1.  
  2. if (isset($_POST['cena_dodatkow'])) {
  3. $cena_dodatkow = $_POST['cena_dodatkow'];
  4. }
  5. else{
  6. $cena_dodatkow = 0;
  7. }
  8. if (isset($_POST['numer_dodatku'])) {
  9. $numer_dodatku = $_POST['numer_dodatku'];
  10. }
  11.  
  12. if (isset($_POST['nazwa_dodatku'])) {
  13. $nazwa_dodatku = $_POST['nazwa_dodatku'];
  14. }
  15.  
  16.  
  17. if (!empty($numer_dodatku)) {
  18. echo "<tr><td>Dodatki: ";
  19. if (!empty($numer_dodatku)) {
  20. echo $numer_dodatku . " ";
  21. }
  22.  
  23. echo "</td>";
  24. echo "<td align='center' bgcolor='#A8C7A1'>";
  25. if (!empty($cena_dodatkow)) {
  26. echo $cena_dodatkow . " zł";
  27. }
  28. echo "</td></tr>";
  29. }


Mysle ze problem jest banalny a rozwiazanie bardzo latwe bo gubie sie wlasnie na takich prostych rzeczach no ale coz. Dlatego pytam was profesjonalistow, gdzie popelniam blad?
fate
29 linijka 'ciapki'
foreach($_POST['dodatek'] as $numer_dodatku)

nie ma formularza nie wiem czy cos jeszcze
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.