Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Jquery wykonuj się w jednym akcji
Forum PHP.pl > Forum > PHP > Frameworki
istrd
Witam,
Mój problem polega na tym, że jquery działa mi tylko w akcji index. Mam tak samo zbudowaną akcję poczekalnia gdzie trafiają nie akceptowane posty jest taki sam plik index.phtm oraz poczekalnia.phtmll kod jquery mam wstawiony header.phtml ten jest z kolei includowany w obu plikach index.phtml i poczkealnia.phtml. Ogólnie skrypt działa.
Skrypt wykonuje się tylko dla url
http://localhost/zend/index jeśli dodam na koniec znak "/" czyli wtedy mam http://.../zend/index/ lub wpisze http://.../zend/index/index wtedy się nie wykonuje w akcji poczekalnia nie działa w ogóle. Oczywiscie akcje są w tym samym kontrolerze.

header.phtml
  1. <script type="text/javascript">
  2. $(document).ready(function()
  3. {
  4. $("a.glosowanie_odn").click(function()
  5. {
  6. container = $(this).parents("div.glosy");
  7. post_id = container.find(".ukryte_id").html();
  8. if($(this).hasClass("glosuj_plus"))
  9. typ = 'plus';
  10. else
  11. typ = 'minus';
  12. $.ajax({
  13. cache : true,
  14. type : 'post',
  15. url : 'index/glosuj?format=json',
  16. data : {
  17. 'post_id' : post_id,
  18. 'typ' : typ
  19. },
  20. dataType: 'json',
  21. success: function(data)
  22. {
  23. if(data.wynik.result == 1)
  24. {
  25. // jeœli poprawnie zapisano głos
  26. container.find(".ocena").html(data.wynik.wynik);
  27. container.find(".liczba").html(data.wynik.ilosc);
  28. container.find(".kom").html(data.wynik.thx);
  29. }
  30. else if(data.wynik.result == 2)
  31. {
  32. alert("Zaloguj się");
  33. }
  34. else if(data.wynik.result == 3)
  35. {
  36. alert("Już głosowałeœ");
  37. }
  38. else if(data.wynik.result == 4)
  39. {
  40. alert("nie możesz głosować na swoje dzieło");
  41. }
  42. else
  43. {
  44. alert("bład podczas przesylania danch. Spróbuj ponownie.");
  45. container.find(".ocena").html(data.wynik.wynik);
  46. container.find(".liczba").html(data.wynik.ilosc);
  47. }
  48. }
  49.  
  50. });
  51. });
  52. });
  53. </script>


IndexController
  1. function init(){
  2. $this->view->baseUrl=$this->_request->getBaseUrl();
  3. Zend_Loader::loadClass('Post');
  4. Zend_Loader::loadClass('Zend_File_Transfer');
  5. Zend_Loader::loadClass('Zend_Auth');
  6. Zend_Loader::loadClass('Zend_Filter_StripTags');
  7. Zend_Loader::loadClass('Zend_Mail');
  8. Zend_Loader::loadClass('Vote');
  9.  
  10. $contextSwitch = $this->_helper->getHelper('contextSwitch');
  11. $contextSwitch->addActionContext('glosuj', 'json')
  12. ->initContext();
  13. }
  14.  
  15.  


Co z tym zrobić, z góry dzięki za pomoc
KrzysiekWildfire
w init, nie musisz ustawiać baseUrl, no i adres gdzie wysyłasz adres ustaw tak:
url : '<?=$this->baseUrl()?>/index/glosuj?format=json',
i powinno śmigać.
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.