Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie przez POST i odświeżanie strony
piotr485
post 18.07.2016, 18:33:23
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


Witam.

Za pomocą ajaxa przy zmianie pola select -> option aktualizuję rekord w bazie

  1.  
  2. $(document).ready(function() {
  3. $('select.changeStatus').change(function(){
  4. $.ajax({
  5. type: 'POST',
  6. url: '/zmien.php',
  7. data: {selectFieldValue: $('select.changeStatus').val(), projectId: $('input[name$="projectId"]').val()},
  8. dataType: 'php',
  9. success: function(){
  10. location.reload();
  11. }
  12. });
  13. });
  14. });
  15.  
  16.  
  17.  
  18. <form action="" method="POST">
  19. <select class="changeStatus" name="changeStatus" onchange="location.reload()">
  20. <option value="1">Pole 1</option>
  21. <option value="2">Pole 2</option>
  22. <option value="3">Pole 3</option>
  23.  
  24. <input class="projectId" type="hidden" name="projectId" value="636">
  25.  


Wszystko działa dobrze po zmianie select->option rekord aktualizuje się od razu, ale niestety na stronie zmienia się dopiero po drugim odświeżeniu, a chciałbym, aby po zmianie select->option od razu odświeżała się strona i pobierała aktualne dane z bazy, teraz niby się odświeża ale coś nie pobiera aktualnych danych - pobiera je dopiero po 2 odświeżeniu - ktoś wie gdzie robię błąd ?

Z góry dziękuję za pomoc

Go to the top of the page
+Quote Post
viking
post 18.07.2016, 19:50:00
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Spróbuj wyrzucić onchange="location.reload()" i zostaw tylko w ajax. Żądanie jest wysyłane asynchronicznie i może potrwać 1ms albo 10s. To ci się wykonuje od razu niezależnie od wyniku.


--------------------
Go to the top of the page
+Quote Post
ZenekN
post 19.07.2016, 15:58:43
Post #3





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


W programowaniu to jest tak że najlepiej jest dojść do czegoś samemu :-)
Zauważ po co używac reload w ajax ? jak nie ma takiej potrzeby.

Ajax jest po to aby coś wysyłał do bazy albo odpowiadział jakimiś danymi w callback czy success (interpretuj to jak chcesz), nie służy do przeładowania okna zazwyczaj - aarambo.gif

Użytkownik wybiera opcje i taka zostaje wybrana - zostaw to niech sobie przeładuje okno sam - jeśli ma taką potrzebę - aarambo.gif

Ten post edytował ZenekN 19.07.2016, 16:20:32
Go to the top of the page
+Quote Post

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: 25.04.2024 - 05:10