Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JQuery][HTML][PHP] Pobranie zmiennej z <select><option> w pętli while
scorpion10
post 27.09.2021, 06:37:34
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

Ostrzeżenie: (0%)
-----


Jak pobrać wartość z listy rozwijanej
  1. <select value= "<?php while (.....warunek....){ ?>"> <option><?php echo $zmienna ?><option><?php } ?><select>
do jQuery która jest w pętli while i pobiera dane z MySQL.
jak rozpoznać w jQuery która wartość rozwijanej listy została wybrana. Oczywiście select ma swoje id i poprzez zdarzenie "change" chce pobrać odpowiednia wartość z <select><option>.

Ten post edytował scorpion10 27.09.2021, 07:04:08
Go to the top of the page
+Quote Post
viking
post 27.09.2021, 06:58:47
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


  1. $("select option:selected");

Oczywiście dobrze by było dać jakieś value dla option.


--------------------
Go to the top of the page
+Quote Post
scorpion10
post 27.09.2021, 09:21:24
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

Ostrzeżenie: (0%)
-----


oczywiście jest value, przeoczyłem to piszać na szybko post ale wartość w value jest podano jako zmienna PHP przechowujaca wartość z pola bazy danych, ale to nadal nie rozwiązuje mojego problemu :-)


  1.  
  2. $(document).ready(function(){
  3.  
  4. $('#Gniazda').on('change',function(){
  5.  
  6. var zpk = $('select option:selected').val();
  7.  
  8. console.log(zpk);
  9.  
  10.  
  11. });
  12.  
  13.  
  14. });
  15.  


Pobiera mi tylko pierwsza wybrana wartość z pętli while <option> po zmianie wartości na liście rozwijanej na inną nadal wartość jest pierwszej z listy.

OK. pobiera mi juz wartość z value="....." poprzez ten skrypt jquery

  1. $(document).ready(function(){
  2.  
  3. $('#Gniazda').on('change',function(){
  4.  
  5. var zpk = $('select option[name=zpk]').filter(':selected').val();
  6.  
  7. console.log(zpk);
  8.  
  9.  
  10. });
  11.  
  12.  
  13. });


a jak do tego pobrać dodatkowe wartości zmiennych w tej pozycji select, nie wpisując ich do value='......' ? gdyż w value jest tylko ID rekordu
które będzie wymagane do zapisu w bazie, ale na stronie chciałbym wyświetlić jeszcze wartości innych zmiennych z tej pozycji select. Jak należało by to zrobić w jquery ?
Czy trzeba dodać ajax ?

Ten post edytował scorpion10 27.09.2021, 07:58:57
Go to the top of the page
+Quote Post
viking
post 27.09.2021, 17:19:45
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


const zpk = $(this).val(); // $(this).text();


--------------------
Go to the top of the page
+Quote Post
scorpion10
post 28.09.2021, 07:10:42
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

Ostrzeżenie: (0%)
-----


super, wszystko działa to o co powyżej już omówione, ale pozostaje jednak dalej problem, jak do tego pola <select>,<option> dorzucić sobie wartości
jeszcze innych kilku zmiennych z tej wybranej iteracji pętli while ?

Samą wartość zmiennej z <option> mam z atrybutu value=" ..." ale potrzebuje jeszcze przekazać do jQuery
kilka innych wartości zmiennych z PHP, które są powiązane z tą pozycją listy rozwijanej <option>.
Próbowałem do tego pola select dodać ukryte jeszcze pole i nim przesłać kolejna zmienną, ale niestety
pole pomimo atrybutu hidden i tak się wyświetla i zaburza cały wgląd formularza. Jaki jest prawidłowy sposób
w takim przykładzie, na przesłanie wartości tych zmiennych do jQuery ?

Go to the top of the page
+Quote Post
nospor
post 28.09.2021, 09:14:08
Post #6





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Nie ma zadnego atrybutu HIDDEN. Jest conajwyzej pole typu HIDDEN

<input type="hidden" value="blabla" />

Dorzuc to tych wartosci swoich resztre rzeczy po sredniku i juz

<option value="1;cosinnego;cosjeszczeinnego"> Opis dla value 1</option>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post 28.09.2021, 09:38:49
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Albo przechowuj w atrybutach data-*
https://developer.mozilla.org/pl/docs/Learn...data_attributes


--------------------
Go to the top of the page
+Quote Post
scorpion10
post 28.09.2021, 12:42:12
Post #8





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

Ostrzeżenie: (0%)
-----


mam problem ze składnią, z data-*, było by to najlepsze rozwiazanie, ale gdy umieszcze data- w linii
<option data-gk="<?php echo $Wartosc ?>" value="<?php echo $zmienna ?>">LISTA ROZWIJANA</option>
otrzymuje undefined jezeli jest w linii <select data-gk ............ itd.> to wówczas w konsoli mam wartość
przekazanej data ale to nie rozwiazuje mojego problemu, bo data-* musze przekazać z pętli while w z
pola <option>
Jak więc powinna być poprawna składania, by wartość data- została przekazana ?
Go to the top of the page
+Quote Post
trueblue
post 28.09.2021, 12:59:49
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Zupełnie nie rozumiem o czym piszesz.
1. W jakim momencie otrzymujesz undefined? Pokaż kod jak pobierasz wartość z tego atrybutu.
2. Pokaż kod HTML wygenerowanej listy.


--------------------
Go to the top of the page
+Quote Post
scorpion10
post 10.11.2021, 14:27:14
Post #10





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

Ostrzeżenie: (0%)
-----


OK ! już ogarnąłem problem, data-* przekazuje teraz wartości, należało wskazać :selected jako zaznaczone pole <option>

Cytat(nospor @ 28.09.2021, 09:14:08 ) *
Nie ma zadnego atrybutu HIDDEN. Jest conajwyzej pole typu HIDDEN

<input type="hidden" value="blabla" />

Dorzuc to tych wartosci swoich resztre rzeczy po sredniku i juz

<option value="1;cosinnego;cosjeszczeinnego"> Opis dla value 1</option>



A jak potem przy pobraniu formularza metodą POST pobrać do osobnych zmiennych POST, te połączone średnikiem wartości pola <option value="1;cosinnego;cosjeszczeinnego">
pole select ma swoj name <select name="wartosc_zaznaczona">

var_dump($_POST); pokazuje mi te wartości, w jednym indeksie tablicy, połączone w jedną wartość, a czy da się je jakoś rodźelić je przy pobraniu formularza do odrębnych zmiennych $_POST[], bez używania substr() itp.. ?

Go to the top of the page
+Quote Post
nospor
post 10.11.2021, 14:46:30
Post #11





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




explode()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 11:50