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

Pobranie PHPem który <option> został wybrany

Object Storage Arubacloud
0 głosów
147 wizyt
pytanie zadane 22 października 2018 w PHP przez Śmieszek_;3 Użytkownik (780 p.)
Cześć,

chciałbym stworzyć dodawanie artykułów na podstronie, wymyśliłem sobie, że ładnie by było gdyby kategorie były wyświetlane w <option>, pętlą wyciągnąłem wszystkie kategorie i śmiga. Problem jest taki, że potrzebuję pobrać informację, który <option> został zaznaczony, żeby wiedzieć do jakiej kategorii dodać ten wpis. Nie mam pojęcia jak to zrobić.

1 odpowiedź

+1 głos
odpowiedź 22 października 2018 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 23 października 2018 przez Śmieszek_;3
 
Najlepsza
Tak samo jak odczytujesz wartości innych inputów. Zakładając że przesyłasz to normalnie metodą GET/POST możesz odczytać z tablicy $_GET czy $_POST podając jako klucz nazwę inputa (name z formularza). Możesz też użyć np. funkcji filter_input(). Jako wartość otrzymasz value wybranego <option>, jeśli value nie będzie ustawione to po prostu zawartość danej opcji.
komentarz 22 października 2018 przez Śmieszek_;3 Użytkownik (780 p.)

Próbowałem kombinować w ten sposób, ale nie potrafię.

W atrybucie name dla każedego <option> dałem jeden tytuł, a jako value id kategorii z bazy

echo '<form method="post">';
		echo '<select id="categories-list">';
		echo '<option name="whichCategory" value="0">Wybierz kategorię</option>';
		while($row = $categoriesQuery->fetch_assoc()) {
			$catId = $row['catid'];
			$catName = $row['name'];
			echo '<option name="whichCategory" value="'.$catId.'">'.$catName.'</option>';
		}
		echo '</select><input type="submit" value="OK"></form>';

		if (isset($_POST['whichCategory'])) {
			echo 'pojaw sie ;c';
		} else {
			echo "nie dziala :((";
		}

 

ale no ten if na końcu zawsze daje false

 

Próbowałem też każdemu name dać ID kategorii

echo '<form method="post">';
		echo '<select id="categories-list">';
		echo '<option value="Wybierz kategorię" name="0">Wybierz kategorię</option>';
		while($row = $categoriesQuery->fetch_assoc()) {
			$catId = $row['catid'];
			$catName = $row['name'];
			echo '<option value="'.$catName.'" name="'.$catId.'">'.$catName.'</option>';
		}
		echo '</select><input type="submit" value="OK"></form>';

		if (isset($_POST['1'])) {
            echo 'pojaw sie ;c';
        } else {
            echo "nie dziala :((";
        }
        if (isset($_POST['2'])) {
            echo 'pojaw sie ;c';
        } else {
            echo "nie dziala :((";
        }
        if (isset($_POST['3'])) {
            echo 'pojaw sie ;c';
        } else {
            echo "nie dziala :((";
        }
        if (isset($_POST['4'])) {
            echo 'pojaw sie ;c';
        } else {
            echo "nie dziala :((";
        }
	

 

ale tutaj też wszystkie ify zwracają false. Więc no nie mam pojęcia jak sprawdzić, którą opcję się wybrało

komentarz 22 października 2018 przez Arkadiusz Waluk Ekspert (287,950 p.)
Atrybut name daj do tagu <select>, nie poszczególnych opcji. Opcje możesz identyfikować poprzez value dla każdej z nich (pobranie wartości selecta o danym name zwróci value aktualnie wybranej opcji).

Podobne pytania

0 głosów
1 odpowiedź 327 wizyt
pytanie zadane 26 lutego 2023 w PHP przez gatka84 Bywalec (2,150 p.)
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 3 maja 2019 w PHP przez Webmaster123 Początkujący (440 p.)
0 głosów
0 odpowiedzi 230 wizyt

92,568 zapytań

141,422 odpowiedzi

319,637 komentarzy

61,956 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!

...