Tomasz Wójcik

Tomasz Wójcik Grafik komputerowy,
CH2M

Temat: Zapamiętywaniem wyboru z listy rozwijanej

Witam,
Mam problem. Otóż mam mały program napisany w PHP. Program posiada bazę danych w pliku txt, a w niej jest spis asortymentu z cenami, czyli: nazwa asortymentu || cena w PLN || cena w euro. Mam listę rozwijaną asortymentu i chciałbym, aby po kliknięciu przycisku "oblicz" zapamiętać wybrany asortyment na liście. W miejscach gdzie miałem listę wyboru i wpisane na sztywno pola wyboru poradziłem sobie z tym, ale w przypadku jak program pobiera sobie automatycznie tę listę to mam problem. Kod jest w PHP, ale miejscami przechodzi w html i znowu w php. Sądzę, że gdzieś tutaj przy tych przejściach jest błąd, ale nie mam pojęcia gdzie. Męczę się z tym od kilku dni i nic.

Kod:

<select name="baza_towaru" id="baza_towaru">
<?php
$dane = file($plik);

for($i=0;$i<count($dane);$i++) {
list($asortyment[$i], $cenaPLN[$i], $cenaEURO[$i]) = explode(" || ", $dane[$i]);
}

for($i=0;$i<count($asortyment);$i++)
echo '<option value="'.$i.'" '.checkSelected($i, 'baza_towaru').'>'.$asortyment[$i]."</option>";

?>
</select>

Temat: Zapamiętywaniem wyboru z listy rozwijanej

Jako, że nie wiadomo co masz w checkSelected to zamiast
checkSelected($i, 'baza_towaru')

wstaw

($_POST['baza_towaru'] === $i ? ' selected ' : '' )


Pod warunkiem, że wysyłasz dane z formularza metodą POST.Ten post został edytowany przez Autora dnia 30.03.14 o godzinie 15:35
Tomasz Wójcik

Tomasz Wójcik Grafik komputerowy,
CH2M

Temat: Zapamiętywaniem wyboru z listy rozwijanej

Ok, dzięki za odpowiedź, ale już udało mi się z tym poradzić.


<select name="baza_towaru" id="baza_towaru">
<?php
$dane = file($plik);

for($i=0;$i<count($dane);$i++) {
list($asortyment[$i], $cenaPLN[$i], $cenaEURO[$i]) = explode(" || ", $dane[$i]);
}

for($i=0;$i<count($asortyment);$i++) {
echo '<option value="'.$i.'"';
if($_POST['baza_towaru'] == $i) echo ' selected';
echo '>'.$asortyment[$i].'</option>';}
?>
</select>

Temat: Zapamiętywaniem wyboru z listy rozwijanej

Przecież to samo napisałem Ci wyżej ...



Wyślij zaproszenie do