Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jquery/ajax ładowanie widoku ZF2
bobi194
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 24.04.2006

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


w jquery 1.4 ( i kohanie 3) poniższy kod działa
  1. $(document).ready(function()
  2. {
  3. //zamiast load()
  4. $.ajax(
  5. {
  6. type:"GET",
  7. url:"<?php echo url::base();?>index.php/tylkoajax/ajax",
  8. async: true,
  9. dataType: "html",
  10. success: function(msg){
  11. $("#odp").html(msg);
  12. }
  13. }
  14.  
  15. );
  16.  
  17.  
  18. $('#wyslij').live("click",function()
  19. {
  20. $.ajax(
  21. {
  22. type:"GET",
  23. url:"<?php echo url::base();?>index.php/tylkoajax/ajax",
  24. async: true,
  25. dataType: "html",
  26. success: function(msg){
  27. $("#odp").html(msg);
  28. }
  29. }
  30.  
  31. );
  32. }
  33. );
  34.  
  35. )};
  36. <div id="msg"></div>


w jquery 1.10 ( i zf2) poniższy kod nie działa
  1. $(document).ready(function(){
  2.  
  3. $.ajax({
  4.  
  5. url: "<?php echo $this->url('auth-doctrine-testy/default', array('controller' => 'index', 'action' => 'loginajax'));?>",
  6. type: "POST",
  7.  
  8. success: function( strData ){
  9. $("#odp").html(strData );
  10.  
  11.  
  12.  
  13. }
  14. }
  15. );
  16.  
  17.  
  18.  
  19. $(document).on("click","#wyslij",
  20. function(){
  21.  
  22. $.ajax(
  23. {
  24.  
  25. url: "<?php echo $this->url('auth-doctrine-testy/default', array('controller' => 'index', 'action' => 'loginajax'));?>",
  26. type: "POST",
  27.  
  28.  
  29. success: function( strData ){
  30. $("#odp").html('strData' );
  31.  
  32. }
  33. }
  34. );
  35.  
  36.  
  37. </script>
  38.  
  39.  
  40. <div id="odp"></div>

problemem nie jet framework php (widzę co zwraca kontroler);
Chodzi o to, że zdarzenie $(document).on("click","#wyslij"..... nie podmienia treści w divie odp

Czy ktoś z was ma rozwiązanie na ładowanie całych widoków w połączeniu jquery i zf2 i może je przedstawić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nawet jeśli by działało to $("#odp").html('strData' ); uzupełni stringiem 'strData' a nie odpowiedzią z żądania.
Co masz jako odpowiedź?
Go to the top of the page
+Quote Post
bobi194
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 24.04.2006

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


no tak sorki ciapki wstawiłem, żeby zamiast widoku w pentli pokazało mi jakiś przypadkowy string

zastanawiam się na koncepcją ładowania widoków via ajax (jquery) ba tak:
1. odpalam kontroler domyślny np login
2. on renderuje mi widok login.phtml
3. widok ten po załadowaniu (document -redy) wysyła żądanie ajax do kontrolera loginajax
4. w odpowiedzi (success) dostaje zrenderowany widok (bez layoutu czyli setTerminal(true)) loginajax
5. widok umieszczam w divie odp (i mam widok z formularzem logowania)

do tego momentu wszystko działa, ale gdy:
kliknę przycisk z id=wyslij żądanie ajax do kontrolera ajaxlogin dostaję w odpowiedzi do id=odp drugi formularz , a po każdym kliknięci następny

coś jest zapętlone
jak wy to macie rozwiązane?

Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
kliknę przycisk z id=wyslij żądanie ajax do kontrolera ajaxlogin dostaję w odpowiedzi do id=odp drugi formularz , a po każdym kliknięci następny
A co bys chcial dostac jak nie formularz?
Go to the top of the page
+Quote Post
bobi194
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 24.04.2006

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


tak formularz ale dlaczego nie "nadpisuje" poprzednio utworzonego diva id=odp tylko tworzy następny

Efekt jest taki, że wyrenderowany formularz przekazywałem do okienka dialog jquery
I tak jak już pisałem: po kliknięciu elementu o id=wyslij tworzą się kolejne formularze w dialogu
poniżej jeszcze raz kompletny kod login.phtml
  1. $(document).ready(function(){
  2.  
  3. $.ajax(
  4.  
  5. {
  6. url: "<?php echo $this->url('auth-doctrine-testy/default', array('controller' => 'index', 'action' => 'loginajax'));?>",
  7.  
  8. type: "POST",
  9.  
  10. error: function(){
  11.  
  12. },
  13.  
  14. beforeSend: function(){
  15.  
  16. },
  17.  
  18. complete: function(){
  19.  
  20. },
  21.  
  22. success: function( strData ){
  23. $("#odp").html(strData );
  24.  
  25. $( "#dialog" ).dialog({
  26. dialogClass: 'no-close',
  27. autoOpen: true,
  28. minWidth: '800',
  29. show: {
  30. effect: "blind",
  31. duration: 1000
  32. },
  33. hide: {
  34. effect: "explode",
  35. duration: 1000
  36. }
  37. });
  38.  
  39. }
  40. }
  41. );
  42.  
  43.  
  44.  
  45.  
  46.  
  47. $(document).on("click","#wyslij",
  48.  
  49. function(){
  50.  
  51.  
  52. $.ajax(
  53. {
  54.  
  55. url: "<?php echo $this->url('auth-doctrine-testy/default', array('controller' => 'index', 'action' => 'loginajax'));?>",
  56.  
  57. type: "POST",
  58.  
  59.  
  60. success: function( strData ){
  61. $("#odp").html(strData);
  62. $( "#dialog" ).dialog({
  63. dialogClass: 'no-close',
  64. autoOpen: true,
  65. minWidth: '800',
  66. show: {
  67. effect: "blind",
  68. duration: 1000
  69. },
  70. hide: {
  71. effect: "explode",
  72. duration: 1000
  73. }
  74. });
  75.  
  76. }
  77. }
  78. );
  79.  
  80.  
  81.  
  82.  
  83. });
  84.  
  85. });
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. </script>
  93.  
  94.  
  95. <div id="odp"></div>


pomocy co jest nie tak?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cos mieszasz z tymi dialogami.
#dialog dostajesz w odpowiedzi ajaxem? Wydaje mi sie, ze powinienies czyscic wpierw aktalny, dopiero potem na nowo tworzyc kolejny.
Go to the top of the page
+Quote Post
bobi194
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 24.04.2006

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


rzeczywiście jak zakomentowałem kod js gdzie wywoływany był dialog wszystko śmiga tzn na stronie jest widok(formularz) a po kliknięciu "id=wyslij" nie tworzy się kolejny formularz

W takim razie jak poprawić te okienko dialogowe?






znalazłem rozwiązanie - wystarczyło id=odp umieścić w divie dlalogu a nie na odwrót
Dzięki za posty

Mam jeszcze pytanie czy ktoś w was korzysta w podobny sposób z ajaxa do ładowania całych widoków czy raczej ograniczacie żądania do pozyskania samych danych np: w formacie JSON ?

Ten post edytował bobi194 7.03.2014, 14:21:01
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 23:55