Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][AJAX]Odswieżanie po dodaniu rekordu.
Salur
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Witam, przesyłam dane przez ajax z jednego pliku do drugiego, problem w tym że plik którym dodaje rekord jest odpowiedzialny jedynie za dodanie. W efekcie koncowym chcę aby po nadaniu sesji strona sie przeładowała. Problem w tym ze gdy ustawie header("Location: xxxx"); to przeladowuje tylko ten plik którym dodaje rekord a nie całą stronę. Próbowałem roznież poprzez: .done( zmienna ){ location.reload(); } lecz nic z tego bo to przeladowuje bez uwzglednienia czy dodano rekord czy nie.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


zwracaj w skrypcie coś jeśli się doda rekord, i w Ajax sprawdzaj czy coś === coś i wtedy refresh
Go to the top of the page
+Quote Post
Salur
post
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Hmm, okej, tylko teraz pytanie jak spowrotem prześlę zmienną z pliku php do funkcji ajax??

Czy muszę znowu poprzez ajax wysyłać zmienna przez post do pliku .js?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


robisz normalnie echo, a potem w np. .done(data) {console.log(data)}
Go to the top of the page
+Quote Post
Salur
post
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Hmm, chyba Cię źle zrozumiałem, o to chodziło? Bo nie działa.

php:

  1. // dadanie sesjii
  2. echo 'dostep';


AJAX:
  1. .done(function( data ) {
  2.  
  3. if(data === 'dostep'){
  4.  
  5. location.href = "xxx";
  6.  
  7. }
  8.  
  9. });


W czym problem?

Ten post edytował Salur 1.09.2015, 17:32:41
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Po echo powinno być exit.

Ustawiałeś jakiś dataType dla żądania ajaxowego?
Go to the top of the page
+Quote Post
Salur
post
Post #7





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Hm, nie ustawiłem, jaki typ żądania powinien być w moim przypadku?
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jeśli nie ustawiałeś to ok.

Sprawdź w konsoli jaką odpowiedź zwraca skrypt php.
Go to the top of the page
+Quote Post
Salur
post
Post #9





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Zwraca wartość 'dostep'
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A teraz tak:
  1. .done(function( data ) {
  2. console.log(data);
  3. if(data === 'dostep'){
  4. location.href = "xxx";
  5. }
  6. });

i co jest w konsoli?
Go to the top of the page
+Quote Post
Salur
post
Post #11





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Wywaliło dwa razy dostep i nie przekierowało.

(IMG:http://nevaria.pl/2.jpg)
Go to the top of the page
+Quote Post
trueblue
post
Post #12





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A teraz:
  1. done(function( data ) {
  2. if(data === 'dostep'){
  3. console.log('jestem tu');
  4. location.href = "xxx";
  5. }
  6. });
Go to the top of the page
+Quote Post
Salur
post
Post #13





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Teraz zwróciło tylko raz 'dostep'.
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Wcześniej również raz zwróciło.
Natomiast dodatkowo był druk w konsoli.
Teraz powinno drukować 'jestem tu'.
Go to the top of the page
+Quote Post
Salur
post
Post #15





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


W tym problem że nie drukuje. Co może być nie tak?

Oto cała funkcja:

  1. function zaloguj() {
  2.  
  3. var Login = $("[name=Login]").val();
  4. var Password = $("[name=Password]").val();
  5.  
  6. $.ajax({
  7.  
  8. method: "POST",
  9.  
  10. url: "pages/login.php",
  11.  
  12. data: { 'Login': Login, 'Password': Password},
  13.  
  14. })
  15. .done(function( data ) {
  16.  
  17. if(data === 'dostep'){
  18.  
  19. console.log('jestem tu');
  20.  
  21. location.href = "link";
  22. }
  23. });
  24. }


Ten post edytował Salur 1.09.2015, 18:58:50
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Sprawdź czy nie drukujesz w php jakichś znaków przed lub po.
Ustaw kodowanie pliku na UTF-8 bez BOM.
echo ma się kończyć exit.
Go to the top of the page
+Quote Post
Salur
post
Post #17





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Wszystko jest okej w kodzie.

PHP:

  1. $_SESSION['user'] = $user['id'];
  2. echo 'dostep'; exit;


W obu plikach jest kodowanie uff8 bez bom. W pliku php nie ma innych echo.
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Brak innego echo o niczym nie świadczy. Być może jest jakiś biały znak przed tekstem.
Go to the top of the page
+Quote Post
Salur
post
Post #19





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Oto cały plik php:

  1. <?php
  2.  
  3. if(!empty($_POST) && !empty($_POST['Login']) && !empty($_POST['Password'])) {
  4.  
  5. $login = parseString($_POST['Login']);
  6. $pass = htmlspecialchars(trim(stripslashes($_POST['Password'])));
  7.  
  8. $user = $db->select_single("SELECT * FROM account.account WHERE login = '".$login."' AND password = PASSWORD('".$pass."') LIMIT 1");
  9.  
  10.  
  11. if(!empty($user)){
  12.  
  13. if($user['status'] == 'BLOCKED'){
  14.  
  15. $blad = 'Twoje konto jest zbanowane.';
  16.  
  17. } else {
  18.  
  19. $_SESSION['user'] = $user['id'];
  20.  
  21. echo 'dostep'; exit;
  22.  
  23. }
  24.  
  25. } else {
  26.  
  27. $blad = 'Podałeś złe dane do logowania.';
  28.  
  29. }
  30.  
  31. }
  32. ?>
Go to the top of the page
+Quote Post
trueblue
post
Post #20





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Sprawdź z takim plikiem php:
  1. <?php
  2. echo 'dostep';
  3. exit();
  4. ?>
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 15.09.2025 - 21:42