Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Przekazywnie parametru za pomocą js do formularza z action
Forum PHP.pl > Forum > Przedszkole
Bojakki
Mam wyszukiwarkę z rozwijanym menu, w którym mogę sobie wybrać w jakiej części mojego serwisu chce wyszukiwac (całość, newsy, forum, baza ofert pracy).

Mam to rozwiązane tak:
  1. <script>(function(d, s, id) {
  2. var js, fjs = d.getElementsByTagName(s)[0];
  3. if (d.getElementById(id)) return;
  4. js = d.createElement(s); js.id = id;
  5. js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
  6. fjs.parentNode.insertBefore(js, fjs);
  7. }(document, 'script', 'facebook-jssdk'));
  8.  
  9.  
  10. jQuery(document).ready(
  11. function () {
  12. jQuery('#more').click(function(){
  13. if(jQuery(this).hasClass('active')){
  14. jQuery(this).removeClass('active');
  15. jQuery('#search-menu').removeClass('active');
  16. } else {
  17. jQuery(this).addClass('active');
  18. jQuery('#search-menu').addClass('active');
  19. }
  20. });
  21.  
  22. $('#search li').click(function() {
  23. jQuery('#more').removeClass('active');
  24. jQuery('#search-menu').removeClass('active');
  25. setFormAction(jQuery(this).attr('class'));
  26. jQuery('#search-text').attr('placeholder',jQuery(this).text()).blur();
  27. });
  28.  
  29. }
  30. )
  31.  
  32. function setFormAction(choice){
  33. switch(choice){
  34. case 's1':
  35. jQuery('#search').get(0).setAttribute('action', '../search.php');
  36. break;
  37. case 's2':
  38. jQuery('#search').get(0).setAttribute('action', '../search.php?ct=1');
  39. break;
  40. case 's3':
  41. jQuery('#search').get(0).setAttribute('action', '../search.php?ct=2');
  42. break;
  43. case 's4':
  44. jQuery('#search').get(0).setAttribute('action', '../search.php?ct=3');
  45. break;
  46. }
  47. }
  48. </script>
  49.  
  50. <form id="search" class="search-large" action="../search.php" method="GET">
  51. <input id="search-text" class="search-top" type="text" name="name" placeholder="<?=__('Search')?>" value="" />
  52. <div id="more"></div>
  53. <input id="search-btn" type="image" src="../images/layout/sbutton.png" alt="Go" />
  54.  
  55. <ul id="search-menu">
  56. <li class="s1"><?=__('Search')?></li>
  57. <li class="s2"><?=__('Search forum')?></li>
  58. <li class="s3"><?=__('Search news')?></li>
  59. <li class="s4"><?=__('Search work')?></li>
  60. </ul>
  61.  
  62. </form>
  63.  
  64.  


parametr ct wskauzje w którym dziale chemy szukac, pusty oznacza, że na całej stronie, 1 to newsy, 2 forum, 3 oferty pracy.

Problem jest aki, że paramter jest ucinany i przekazywana sama nazwa pliku search.php. Zmieniłem z GET na POST, ale wtdy w ogóle już nic nie działało. Jest jakiś sposób by przekazać ten paramter (ct) do forma, w zależności od tego co się wybierze z tego rozwijanego menu?
b4rt3kk
Parametr nie jest ucinany, tylko Twoja funkcja nie działa, proponuję użyć:

  1. jQuery('#search').attr('action', '../search.php?ct=3');


No i przede wszystkim wywołać gdzieś funkcję, bo to że ją napisałeś to mało.

  1. $(function(){
  2. $('#search').change(setFormAction($(this)));
  3. });
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.