Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][jQuery]Select zależny od div
Forum PHP.pl > Forum > Przedszkole
webmaniak
Witam,
mam pewien kod:
  1. <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
  2. <script src="http://code.jquery.com/jquery-migrate-1.1.0.min.js"></script>
  3. <form method="POST">
  4.  
  5. <select id="wybor">
  6. <option value="pierwszy">PHP</option>
  7. <option value="drugi">JS</option>
  8. <option value="trzeci">CSS</option>
  9. <option value="czwarty">Ajax</option>
  10. <option value="piaty">jQuery</option>
  11. </select>
  12.  
  13.  
  14. </form>
  15.  
  16. <div id="jezyk">
  17. Ajax
  18. </div>
  19.  
  20.  
  21.  
  22.  
  23.  
  24. <script type="text/javascript">
  25. $(document).ready(function() {
  26. $('#jezyk').on('click', function() {
  27. $('#wybor').val($('#jezyk').html());
  28. })
  29. });

Chciałbym aby po kliknięciu na element o id jezyk zmienił się select na wartość taką jaka jest w tym divie. W divie może być dowolna wartość z selecta, może też być to pusty element. Kod który przedstawiłem nie działa mi, nie zmienia nic, nie wiem czemu. Jestem zielony w jQuery i nie wiem jak sobie z tym poradzić. Pomoże ktoś?
bpskiba
  1.  
  2. <form method="POST">
  3. <select id="wybor" onchange="kk(this)">
  4. <option value="pierwszy">PHP</option>
  5. <option value="drugi">JS</option>
  6. <option value="trzeci">CSS</option>
  7. <option value="czwarty">Ajax</option>
  8. <option value="piaty">jQuery</option>
  9. </select>
  10. </form>
  11.  
  12. <div id="jezyk">
  13. Ajax
  14. </div>
  15.  
  16. <script type="text/javascript">
  17. function kk(e)
  18. {
  19. switch(e.value)
  20. {
  21. case"pierwszy": document.getElementById("jezyk").innerHTML="PHP";
  22. break;
  23. case"drugi": document.getElementById("jezyk").innerHTML="JS";
  24. break;
  25. case"trzeci": document.getElementById("jezyk").innerHTML="CSS";
  26. break;
  27. case"czwarty": document.getElementById("jezyk").innerHTML="Ajx";
  28. break;
  29. case"piaty": document.getElementById("jezyk").innerHTML="jQuery";
  30. break;
  31. }
  32. }
  33. </script>

Zrób mi przyjemność i zapomnij o istnieniu jquery............
webmaniak
Hmm, dzięki za odpowiedź i kod. Zrobiłeś ale odwrotnie, div zależny od select-był tak zatytułowany wątek-ale przez pomyłkę, dlatego zmieniłem smile.gif. Mi chodzi o zrobienie selecta zależnego od diva. No i druga uwaga, nie mogą to być statyczne elementy. Bo w divie jest tekst pobierany z bazy, a w select również z tej samej kolumny, ale wszystkie wiersze. Chodzi po prostu o to że jak kliknę na div to select ustawia się na np. na ajax i będzie filtrowało wyniki po tym wyborze. Filtrowanie zrobione, ale właśnie z tym divem i selectem nie umiem sobie poradzić.
A drugie pytanie: czemu zrezygnować z jQuery? jakiś argument lub link do artykułu/wpisu/argumentów przeciwko temu frameworkowi? Bo z moich informacji wynika że jest on rozwijany i coraz bardziej popularny.
foxbond
Kolega miał na myśli, że do tak prostych zadań nie trzeba includować frameworka...


W sumie to najlepiej zrób for-a po stronie php żeby generować tego switch-a i już masz dynamicznie. Możesz też przechowywać opcje wyboru w jakiejś zmiennej (która wygenerujesz po stronie php) i na niej sprawdzać
webmaniak
Cytat(foxbond @ 25.02.2013, 21:08:34 ) *
Kolega miał na myśli, że do tak prostych zadań nie trzeba includować frameworka...

Ok, będę pamiętał, tylko że w tym przypadku chce to zrobić w ramach już istniejącej aplikacji internetowej, gdzie jQuery jest używany w wielu miejscach.

Cytat(foxbond @ 25.02.2013, 21:08:34 ) *
W sumie to najlepiej zrób for-a po stronie php żeby generować tego switch-a i już masz dynamicznie.

nie za bardzo widzę to rozwiązanie z forem. Możesz pokazać jakiś przykład(pseudokod)?
Cytat(foxbond @ 25.02.2013, 21:08:34 ) *
Możesz też przechowywać opcje wyboru w jakiejś zmiennej (która wygenerujesz po stronie php) i na niej sprawdzać

Jedyne co w takiej opcji wchodzi w grę to sesja, ponieważ select znajduje się w innym pliku niż ten div(w aplikacji - bo przykład uprościłem trochę smile.gif )
Dlatego zależy mi na tym co napisałem - klikam i ustawia się select z wartością z diva.
bpskiba
Nie bardzo rozumiem jaki sens ma ta odwrotność. Przecież generując stronę zamiast wyświetlać "Ajax" możesz wstawić dowolną treść po stronie serwera.
Tutaj chyba php potrzeba a nie jquery czy js.

odwrotnie:

  1. <body onload="kk()";>
  2.  
  3. <form method="POST">
  4. <select id="wybor">
  5. <option value="pierwszy">PHP</option>
  6. <option value="drugi">JS</option>
  7. <option value="trzeci" selected>CSS</option>
  8. <option value="czwarty">Ajax</option>
  9. <option value="piaty">jQuery</option>
  10. </select>
  11. </form>
  12. <div id="jezyk">
  13. Ajax
  14. </div>
  15.  
  16. <script type="text/javascript">
  17. function kk()
  18. {
  19. var e=document.getElementById("wybor");
  20. switch(e.value)
  21. {
  22. case"pierwszy": document.getElementById("jezyk").innerHTML="PHP";
  23. break;
  24. case"drugi": document.getElementById("jezyk").innerHTML="JS";
  25. break;
  26. case"trzeci": document.getElementById("jezyk").innerHTML="CSS";
  27. break;
  28. case"czwarty": document.getElementById("jezyk").innerHTML="Ajx";
  29. break;
  30. case"piaty": document.getElementById("jezyk").innerHTML="jQuery";
  31. break;
  32. }
  33. }
  34. </script>
webmaniak
Ok, to działa, ale cały czas nie o to mi chodzi. Chodzi o to że takich divów będzie mnóstwo. W tym przykładzie co podałeś select się zmienia po załadowaniu strony, w moim przypadku to odpada. Dlatego kombinuję w jQuery.

Bingo, to co potrzebuję:
http://jsfiddle.net/jchiotaka/uaLXU/
Oczywiście muszę to dostosować do swoich potrzeb, jeśli będę miał duże problemy to oczywiście skorzystam z Waszej dobroci(pomocy) smile.gif ale powinno pójść z górki teraz smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.