Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wiele wartości w option + explode
Forum PHP.pl > Forum > PHP
kristaps
Witam, mam mały problem. Mam pętlę, która pobiera mi z bazy danych wartości. Na ogół jest to jeden rekord, jednak czasami zdarza się, że jest ich więcej i muszę mieć możliwość wyboru. Przekazuje więc wszystkie wartości do option value:

  1. $moreproducers .= '<option value="'. $row0["ARTNR"] .','. $row0["CENA"] .','. $row0["ILOSC"] .'">' . $row10["MARKA"] .'</option>';


Następnie używam funkcji explode i rozdzielam wartości separatorem, w tym przypadku ','.

Następnie wyświetlam select:

  1. echo '<form action="" method="POST">
  2. <select name="moreartnr" onchange="this.form.submit()">';
  3.  
  4. echo $moreproducers;
  5. echo '</select>';



Po wszystkim pobieram rozdzielam i przypisuje do zmiennej.

  1. $moreartnr = $_POST['moreartnr'];
  2.  
  3. if($moreartnr) {
  4.  
  5. print_r(explode(',', $moreartnr, 3));
  6.  
  7. $artnr = $moreartnr[0];
  8. $cena = $moreartnr[1];
  9. $ilosc = $moreartnr[2];
  10.  
  11. }


Tutaj wkrada się błąd. Gdy wyświetlam tablicę wszystkie dane są ok, jednak gdy przypiszę je do zmiennych to otrzymuję niejasne wyniki.

Array ( [0] => 1033 [1] => 89 [2] => 70 )

a zmienne wyświetlają:


1
0
3

Pewnie robię jakiś głupi błąd.

Z góry dziękuję za pomoc,
pozdrawiam.
nospor
explode to wypadałoby do zmiennej przypisać, nie sądzisz?

nie: print_r(explode(',', $moreartnr, 3));
a:

$moreartnr = explode(',', $moreartnr, 3);
print_r($moreartnr);

ps: jako VALUE dla option powinieneś dawać ID rekordu a nie dane tego rekordu. Później jakby ci te dane były potrzebne to możesz je bez problemu na podstawie ID odczytać.
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.