Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [AJAX][PHP]Wyświetlenie wybranej wartości z select
wojciechu
post 17.09.2012, 12:44:42
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Witam,

Chciałem wykorzystać następujący kod ze strony:

  1. <script src="jquery.js" type="text/javascript" charset="utf-8"></script>
  2. <script src="jquery.chained.js" type="text/javascript" charset="utf-8"></script>
  3.  
  4. <select id="mark">
  5. <option value="">--</option>
  6. <option value="bmw">BMW</option>
  7. <option value="audi">Audi</option>
  8. </select>
  9. <select id="series">
  10. <option value="">--</option>
  11. <option value="series-3" class="bmw">3 series</option>
  12. <option value="series-5" class="bmw">5 series</option>
  13. <option value="series-6" class="bmw">6 series</option>
  14. <option value="a3" class="audi">A3</option>
  15. <option value="a4" class="audi">A4</option>
  16. <option value="a5" class="audi">A5</option>
  17. </select>
  18.  
  19. <script>
  20. $("#series").chained("#mark"); /* or $("#series").chainedTo("#mark"); */
  21. </script>


jednak napotkałem na problem - chciałbym pobrać wartości wybranych opcji i wyświetlić je jako echo, a potem POSTem przesłać do bazy. Prosiłbym o pomoc jaki kod stworzyć, żeby gdzieś na stronie wyświetlić wartości z list.

Próbowałem poniższego, ale nie działa...

  1. <?php
  2.  
  3. echo 'Wybrana wartość '.$_GET['mark'];
  4.  
  5. ?>
Go to the top of the page
+Quote Post
grzes999
post 17.09.2012, 18:33:19
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Gdzie chcesz wyświetlić te dane po przesłaniu formularz po wybraniu opcji??
I chcesz przesłać formularz normalnie czy bez przeładowywania strony??
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 06:25:18
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Chcę wyświetlić tekst w dowolnym miejscu na bieżącej stronie, żeby zmieniał się zależnie od wybranej opcji z select'a. Wysłanie danych już dowolnie

Pomożesz jakoś? smile.gif
Go to the top of the page
+Quote Post
mmmmmmm
post 18.09.2012, 07:00:15
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Przy selectach brak "name", przez które się później do nich odwołujesz... No i oczywiście nie są w form z method=GET
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 07:12:07
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Zamieniłem id na name i nadal nie działa.

O co chodzi Tobie w poniższym zdaniu? Jak mam zmienić swój obecny kod jeszcze?
Cytat
No i oczywiście nie są w form z method=GET
Go to the top of the page
+Quote Post
b4rt3kk
post 18.09.2012, 10:22:55
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  1. $(function() {
  2. $('select').change(function() {
  3. value = $(this).val();
  4. alert(value);
  5. });
  6. });


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 11:39:17
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


OK, teraz mi wyświetla się okienko z informacją jaką wartość z selecta wybrałem (dla obu selectów).

Tylko to nie wyjaśnia problemu jaki opisałem - chciałem, żeby na stronie wyświetlił się tekst, który będzie pokazywał tylko wartości wybierane dla selecta 'mark'

Pomóżcie proszę, czuję, że jesteśmy blisko smile.gif

Poniżej cały obecny kod:
  1. <select name="mark">
  2. <option value="">--</option>
  3. <option value="bmw">BMW</option>
  4. <option value="audi">Audi</option>
  5. </select>
  6.  
  7. <select name="series">
  8. <option value="">--</option>
  9. <option value="series-3" class="bmw">3 series</option>
  10. <option value="series-5" class="bmw">5 series</option>
  11. <option value="series-6" class="bmw">6 series</option>
  12. <option value="a3" class="audi">A3</option>
  13. <option value="a4" class="audi">A4</option>
  14. <option value="a5" class="audi">A5</option>
  15. </select>
  16.  
  17. <script type="text/javascript" charset="utf-8">
  18. $(function(){
  19. $("#series").chained("#mark");
  20. });
  21.  
  22. $(function() {
  23. $('select').change(function() {
  24. value = $(this).val();
  25. alert(value);
  26. });
  27. });
  28. </script>
  29.  
  30.  
  31.  
  32. <?php
  33.  
  34. echo 'Wybrana wartość '.$_GET['mark'];
  35.  
  36. ?>
Go to the top of the page
+Quote Post
b4rt3kk
post 18.09.2012, 12:06:37
Post #8





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Do tego nie potrzebny jest php, co więcej zmienna typu GET. Wystarczy HTML.

Dodaj pod selectami:

  1. <p class="message"></p>


oraz lekko zmodyfikuj funkcję, którą podałem.

  1. $(function() {
  2. $('select').change(function() {
  3. value = $(this).val();
  4. $('.message').text(value);
  5. });
  6. });


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 12:42:21
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Kurcze, już tak blisko... smile.gif

Tylko jak pisałem wcześniej, zależało mi na wyświetleniu na stronie napisu, tylko dla jednego selecta (mark), a nie dla ostatniego wybranego (tak jak jest w kodzie, który mi podałeś).

Kolejną rzeczą byłoby jak do bazy sql przesłać informację do danego pola, jaka opcja select została wybrana dla 'mark' i 'series' ...
Go to the top of the page
+Quote Post
b4rt3kk
post 18.09.2012, 12:55:06
Post #10





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  1. $(function() {
  2. $('select[name=mark]').change(function() {
  3. value = $(this).val();
  4. $('.message').text(value);
  5. });
  6. });


A to jak już zapiszesz to w bazie danych to kwestia wyboru, albo opakujesz całość w <form>...</form>, albo prześlesz ajaxem. Chyba wiesz jak wysłać formularz?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 13:25:17
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Dzięki za pomoc smile.gif

Ostatnie pytanie: A jak wynik Twojej funkcji zapisać jako zmienną, żeby wrzucić przez polecenie INSERT INTO do bazy sql?
Go to the top of the page
+Quote Post
b4rt3kk
post 18.09.2012, 13:31:57
Post #12





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


To zależy, czy ma zapisywać w momencie wyboru pola select, czy po przesłaniu formularza. W pierwszym przypadku, ajax+php, w drugim czysty php wystarczy.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wojciechu
post 18.09.2012, 13:49:22
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Pytanie: jak będzie wyglądał kod, który pozwoli mi zamienić opisywaną przez Ciebie funkcję wyświetlania wartości danego pola select na zmienną, którą umieszczę w formularzu do przesłania danych do tabeli sql? Czyli: wybiorę sobie odpowiednie pozycje z dwóch list i po naciśnięciu przycisku ma mi przesłać do bazy do dwóch pól informacje o wybranych wartościach selectów.
Go to the top of the page
+Quote Post
b4rt3kk
post 18.09.2012, 14:42:23
Post #14





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Funkcji nie musisz modyfikować. Dodaj ramy formularza do swojego kodu HTML.

  1. <form method="POST" action="wyslij.php">
  2. <select name="mark">
  3. <option value="">--</option>
  4. <option value="bmw">BMW</option>
  5. <option value="audi">Audi</option>
  6.  
  7. <select name="series">
  8. <option value="">--</option>
  9. <option value="series-3" class="bmw">3 series</option>
  10. <option value="series-5" class="bmw">5 series</option>
  11. <option value="series-6" class="bmw">6 series</option>
  12. <option value="a3" class="audi">A3</option>
  13. <option value="a4" class="audi">A4</option>
  14. <option value="a5" class="audi">A5</option>
  15. <input type="submit" />
  16. </form>


Plik wynikowy wyslij.php:

  1. print_r($_POST);


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wojciechu
post 19.09.2012, 06:30:32
Post #15





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Czemu uparcie idziesz w takim kierunku? sad.gif

No bo niby jak w przedstawiony przez Ciebie sposób mam wysłać do bazy sql informacje w postaci
  1. INSERT INTO jakaś-tabela VALUES (wybrany SELECT 1, wybrany SELECT 2)
?
Go to the top of the page
+Quote Post
mmmmmmm
post 19.09.2012, 08:13:43
Post #16





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. INSERT INTO `jakas tabela` SELECT '{$_POST['mark']}', '{$_POST['series']}'
Go to the top of the page
+Quote Post
wojciechu
post 19.09.2012, 09:57:03
Post #17





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Ok, mój kod wygląda tak i nie działa.... sad.gif

pierwszy plik
  1. <p class="message"></p>
  2.  
  3. <script type="text/javascript" charset="utf-8">
  4. $(function(){
  5. $("#series").chained("#mark");
  6. });
  7.  
  8. $(function() {
  9. $('select[name=mark]').change(function() {
  10. value = $(this).val();
  11. $('.message').text(value);
  12. });
  13. });
  14. </script>
  15.  
  16.  
  17. <form action="form.php" method="post">
  18. <input type="submit" value="dodaj" />
  19.  
  20. <select name="mark">
  21. <option value="">--</option>
  22. <option value="bmw">BMW</option>
  23. <option value="audi">Audi</option>
  24. </select>
  25.  
  26. <select name="series">
  27. <option value="">--</option>
  28. <option value="series-3" class="bmw">3 series</option>
  29. <option value="series-5" class="bmw">5 series</option>
  30. <option value="series-6" class="bmw">6 series</option>
  31. <option value="a3" class="audi">A3</option>
  32. <option value="a4" class="audi">A4</option>
  33. <option value="a5" class="audi">A5</option>
  34. </select>
  35.  
  36. </form>


form.php
  1. <?php
  2. $mark = $_POST['mark'];
  3. $series = $_POST['series'];
  4.  
  5. if($mark and $series) {
  6.  
  7. $connection = @mysql_connect('xxx', 'xxx', 'xxx')
  8. or die('Brak połączenia z serwerem MySQL');
  9. $db = @mysql_select_db('xxx', $connection)
  10. or die('Nie mogę połączyć się z bazą danych');
  11.  
  12.  
  13. $ins = @mysql_query("INSERT INTO xxx VALUES (NULL, '$mark', '$series')");
  14.  
  15. if($ins) echo "Rekord został dodany poprawnie";
  16. else echo "Błąd nie udało się dodać nowego rekordu";
  17.  
  18. mysql_close($connection);
  19. }
  20.  
  21. ?>


Ten post edytował wojciechu 19.09.2012, 09:57:45
Go to the top of the page
+Quote Post
b4rt3kk
post 19.09.2012, 10:47:52
Post #18





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Co niby ma robić ten warunek?

  1. if($mark and $series)


Sprawdzasz czy $mark i $series zwraca true?

  1. if (isset($mark) AND isset($series))


  1. if (!empty($mark) AND !empty($series))


Ten post edytował b4rt3kk 19.09.2012, 10:48:38


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
terabit
post 25.09.2012, 14:08:27
Post #19





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Witam,

znalazlem ten sam kod, ktory jest umieszczony w pierwszym poscie, jednak staram sie go przerobic tak by dzialal tylko z "radio".

Chodzi mi o coś takiego:
  1. DATY:
  2. <input type="radio" name="data1" value="01.10" />
  3. <input type="radio" name="data2" value="02.10" />
  4. <input type="radio" name="data3" value="03.10" />
  5.  
  6.  
  7. DOSTEPNE GODZINY:
  8. <input type="radio" name="g" value="13:20 />
  9. <input type="radio" name="g" value="14:30" /> <----- maja sie wyswietlac gdy pierwszy radio (data1) jest zaznaczony
  10. <input type="radio" name="g" value="15:40" />
  11.  
  12. <input type="radio" name="g" value="15:20 />
  13. <input type="radio" name="g" value="16:30" /> <----- maja sie wyswietlac gdy drugi radio (data2) jest zaznaczony
  14. <input type="radio" name="g" value="17:40" />
  15.  
  16. <input type="radio" name="g" value="13:20 />
  17. <input type="radio" name="g" value="14:30" /> <---- itd.
  18. <input type="radio" name="g" value="15:40" />
  19.  


czyli generalnie ma to działać identycznie jak omawiany skrypt, jednynie zamiast select/option ma być radio.
Próbowałem przerobić skrypt http://www.appelsiini.net/download/jquery.chained.js jednak z JS nie jestem zbyt dobry.

Ma ktoś pomysł lub wskazówki jak to przerobić?

Z góry dzięki za pomoc

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
wojciechu
post 26.09.2012, 07:12:42
Post #20





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 6.09.2012
Skąd: Trójmiasto

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


Dodaj do powiązanego wyboru 'class' i zmień układ na taki jak w poście #7, żeby selecty miały swój 'name'.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 12.06.2025 - 11:19