Dane XML, formularz i ukryte pole

0

Witam!

Jako jedno z zadań zaliczeniowych dostałem takie: ze strony Narodowego Banku Polskiego skrypt pobiera plik XML z aktualnymi kursami walut. Użytkownik wpisuje kwotę, którą chce przeliczyć a następnie wybiera walutę, w której podał i walutę, na którą chce przeliczyć. No i pojawił się mały problem. Mianowicie w tym miejscu:

echo ('<select name="wal_first">');
        
  //odczytujemy dane z pliku XML
  $xml = simplexml_load_file('http://nbp.pl/kursy/xml/'.$plik);
  foreach ($xml->pozycja as $dane) 
  {
    echo ('<option>'.$dane->nazwa_waluty.'</option>');
  }

echo ('</select>');

Chciałbym teraz do formularza przesłać nie tylko nazwę waluty ale również przelicznik i średni kurs. Problem w tym, że w liście rozwijanej nie mogę dodać ukrytego pola np. tak:

echo ('<option>'.$dane->nazwa_waluty.'<input type="hidden" name="kurs_sredni1" value="'.$dane->kurs_sredni.'"</option>');

Poradzicie coś? Jakieś pomysły poza wstawieniem do listy tych 3 pól i oddzieleniem ich np. slashem a później funkcja explode?

1
  1. W option masz atrybut value, w którym możesz przesłać listę rozdzieloną czym chcesz, a user będzie widział tylko nazwę ze środka taga.
  2. Możesz na zdarzeniu onchange listy ustawiać pozostałe wartości w polach ukrytych (oczywiście JavaScript).
  3. POWINIENEŚ wysłać tylko nazwę waluty z listy, a na sesji na serwerze mieć zapamiętane pozostałe informacje z pliku i sobie je dobrać do obliczeń.
1

Chyba najszybsze rozwiązanie:

 echo ('<option value="'.$dane->kurs_sredni.'|'.$dane->kurs_nazwa.'|'.$dane->kurs_przelicznik.'">'.$dane->nazwa_waluty.'</option>');
0

Dziękuję, bardzo mi pomogliście :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1