• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP Lista rozwijana, brak wyświetlania tekstu

Object Storage Arubacloud
0 głosów
1,237 wizyt
pytanie zadane 26 marca 2017 w PHP przez sobi94 Początkujący (270 p.)

Witam. Chcę stworzyć listę, na której będzie można wybrać produkt. Jeżeli się go wybierze z listy i zatwierdzi, to wysyła się do następnego skryptu dane jak nazwa produktu i cena. Stworzyłem prostą listę (wklejam skrypt):
 

<?php

require_once "dbconnects.php";
		 
$polaczenie = @new mysqli($host, $user, $password, $database);

$rezultat = @$polaczenie->query(
sprintf("SELECT * FROM sprzedawcy "));

echo '<select name="publikacja">';

echo '<option value="">Wybierz Publikację</option>';

while($option = mysqli_fetch_assoc($rezultat)) {

echo '<option value="'.$option['email'].'">'.'</option>';

}

echo '</select>';

?>

No i...mam problem z wyświetlaniem. Niby łączy się z bazą, jest wszystko ok , zwraca odpowiednią ilość wersów ale nie ma w ogóle napisów, są puste pola. Jeżeli zmienię w skrypcie zmienną na cenę (a zależy mi na wyświetlanie nazwy) to działa normalnie. Dlaczego znaków mi nie wyświetla a cyfry owszem?

 

komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)

Dołożyłem formularz, by dane wybrane z listy wysyłał mi metodą POST do drugiego skryptu. Niestety nie odbieram ich. Jakieś sugestie?
Kod: 
 

<?php

require_once "dbconnects.php";
		 
$polaczenie = @new mysqli($host, $user, $password, $database);

$rezultat = @$polaczenie->query(
sprintf("SELECT * FROM sprzedawcy "));

echo '<form action="kupno.php" method="post">';

echo '<select name="publikacja">';

echo '<option value="">Wybierz Publikację</option>';

while($option = mysqli_fetch_assoc($rezultat)) {

echo '<option value='.$option['id'].'>'.$option['sprzedawca'].'>'.$option['cena']."zl".'</option>';

}


echo '</select>'."<br>";
echo '<input type="hidden" name="cena" value='.$option['cena'].'>';
echo '<input type="hidden" name="sprzedawca" value='.$option['sprzedawca'].'>';
echo '<input type="hidden" name="id" value='.$option['id'].'>';
echo '<input type="submit" value="Kup">';
echo '</form>';

$polaczenie->close();
?>

 

komentarz 26 marca 2017 przez Fenix Nałogowiec (26,750 p.)

Musisz sprawdzić czy masz coś w zmiennej globalnej POST po przesłaniu formularzu, i na podstawiało tego co przyszło podejmować dalsze działania.

komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
edycja 26 marca 2017 przez sobi94

Sprawdzałem. Nie przesyła mi właśnie ;/ Dlaczego?

EDIT:
Okej, udało mi się skończyć. Dorzucam skrypt:
 

<?php

require_once "dbconnects.php";
		 
$polaczenie = @new mysqli($host, $user, $password, $database);

$rezultat = @$polaczenie->query(
sprintf("SELECT * FROM sprzedawcy "));

echo "Wybierz ";

echo '<form action="kupno.php" method="post">';

echo '<select name="XXX">'."<br>";



while($option = mysqli_fetch_assoc($rezultat)) {

echo '<option value='.$option['id'].'>'.$option['sprzedawca'].'>'.$option['cena']."zl".'</option>';

}


echo '</select>'."<br>";
echo '<input type="submit" value="Kup">';

echo '</form>';
?>

By odebrać zmienne wysłane przez ten skrypt, odbieramy w pliku wykonawczym zmienną $_POST XXX. Za pomocą echo wyświetli nam ID wybranego katalogu/produktu etc. więc należy dalej skojarzyć z tablicą po id i wyświetlić resztę zmiennych

2 odpowiedzi

0 głosów
odpowiedź 26 marca 2017 przez Fenix Nałogowiec (26,750 p.)
Są puste pola ponieważ value w option, to nie jest wartość która jest pokazywana. Robi sie to za pomocą <option>Tutaj nazwa</option>
1
komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
Czyli ma to wyglądać tak? :

'<option value="''">'.$option['email'].'</option>'
komentarz 26 marca 2017 przez Fenix Nałogowiec (26,750 p.)
Tak, tylko value jest potrzebne do przekazania wartości, jest to jego wartość a nie nazwa.

Np masz masz wybór imion:

<option value="1">Monika</option>

<option value="2">Karolina</option>

gdzie Monika w db jest zapisana pod id 1 a name ma oczywiście Monika
komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
Dzięki, działa!
komentarz 26 marca 2017 przez Fenix Nałogowiec (26,750 p.)
Nie ma problemu, warto przeczytać docs'y na temat elementów których sie uzywa. Wszystko ładnie opisane/
komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
To teraz trochę inaczej. Chcę tę listę wykorzystać do formularza. Czy mogę zrobić formularz zawierający tę listę i po wyborze odpowiedniego produktu, przesłać nazwę i cenę?
komentarz 26 marca 2017 przez Fenix Nałogowiec (26,750 p.)
Tak możesz, podać id (jako value) które bedzie id produktu w bazie danych. A tam popowinienes miec podpiete pod to cene + nazwe. Wiec łatwo Ci bedzie je pobrać i przetworzyć.
komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
Okej, biorę się za pisanie, dzięki za pomoc!
0 głosów
odpowiedź 26 marca 2017 przez mtk3d Nałogowiec (46,690 p.)
Bo wpisujesz jedynie wartość, bez nazwy. Pomiędzy znacznikami option, tam gdzie masz '.' musisz wyświetlić nazwę.
komentarz 26 marca 2017 przez sobi94 Początkujący (270 p.)
Czy w value mogę wsadzić cenę również pobraną z bazy danych i przesłać w ten sposób to dalej?

Podobne pytania

0 głosów
3 odpowiedzi 822 wizyt
pytanie zadane 8 grudnia 2016 w PHP przez wanderer Gaduła (3,710 p.)
0 głosów
1 odpowiedź 575 wizyt
pytanie zadane 23 września 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)
0 głosów
1 odpowiedź 8,472 wizyt
pytanie zadane 1 lutego 2017 w HTML i CSS przez Max Vanach Nowicjusz (150 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...