• 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

Hosting forpsi easy 1 pln
0 głosów
989 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 741 wizyt
pytanie zadane 8 grudnia 2016 w PHP przez wanderer Gaduła (3,710 p.)
0 głosów
1 odpowiedź 552 wizyt
pytanie zadane 23 września 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)
0 głosów
1 odpowiedź 8,159 wizyt
pytanie zadane 1 lutego 2017 w HTML i CSS przez Max Vanach Nowicjusz (150 p.)

92,123 zapytań

140,784 odpowiedzi

317,794 komentarzy

61,445 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1454p. - Łukasz Eckert
  2. 1430p. - Dawid128
  3. 1416p. - CC PL
  4. 1405p. - rafalszastok
  5. 1404p. - Marcin Putra
  6. 1348p. - rucin93
  7. 1337p. - sefirek
  8. 1247p. - TheLukaszNs
  9. 1184p. - Adrian Wieprzkowicz
  10. 1166p. - Mikbac
  11. 1132p. - Michal Drewniak
  12. 1097p. - adrian17
  13. 1067p. - Eryk Andrzejewski
  14. 1052p. - nidomika
  15. 1049p. - Anonim 3447134
Szczegóły i pełne wyniki

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.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...