Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] Alert "object Object"
Forum PHP.pl > Forum > Przedszkole
Terrorizer
Chciałbym aby php zwracał mi do ajaxa zmienną $wynik w której będzie zapisany string mówiący o przebiegu instrukcji warunkowej.
Potem ta zmienna powinna zostać wyrzucona przez alert.
Wszystko mi działa niby, tylko na końcu alert w js zamiast mojego stringu pokazuje "object Object".
Czemu tak się dzieje?
  1. <script>
  2. function favadd(fav_id, user_id){
  3. $.ajax({
  4. type : "POST",
  5. url : "scripts/favadd.php",
  6. data: {
  7. fav_id: fav_id,
  8. user_id: user_id
  9. },
  10.  
  11. complete: function(wynik){
  12. alert(wynik);
  13. }
  14.  
  15.  
  16. });
  17. }
  18. </script>
favadd.php :
  1. <?php
  2. include '../connect.php';
  3.  
  4. $fav_id = $_POST['fav_id'];
  5. $user_id = $_POST['user_id'];
  6.  
  7. $number = $pdo-> prepare('SELECT COUNT(*) FROM favourites WHERE user_id = :user_id AND fav_id = :fav_id ');
  8.  
  9. $number ->execute(array('user_id' => $user_id,'fav_id'=>$fav_id));
  10.  
  11. if ($number ->fetchColumn() == 0) {
  12. $pdo->exec("INSERT INTO `favourites` (`fav_id`, `user_id`) VALUES (" . $fav_id . "," . $user_id . ")");
  13. $wynik = "zapisano zmienne do bazy";
  14. return $wynik;
  15. }
  16. else {
  17. $wynik = "zmienne już istnieją w bazie";
  18. return $wynik;
  19. }
  20.  
  21. ?>
Turson
return nie wyświetla nic na ekranie, więc musi byc echo
nospor
Pomijajac to co napisal Turson to czemu zalozyles ze zmienna wynik zawiera tekst?? Przeciez wyraznie masz napisane
http://api.jquery.com/jQuery.ajax/
Cytat
complete
Type: Function( jqXHR jqXHR, String textStatus )
A function to be called when the request finishes (after success and error callbacks are executed). The function gets passed two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string categorizing the status of the request ("success", "notmodified", "error", "timeout", "abort", or "parsererror"). As of jQuery 1.5, the complete setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.

ze pierwszy argument COMPLETE to obiekt, wiec alert zwraca ci poprawnie to co ma zwracac... Manual naprawde nie gryzie

Poza tym Tobie bardziej sie przyda funkcja SUCCESS
Cytat
success
Type: Function( Anything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.
Terrorizer
Założyłem, że skoro php ma zwrócić wartość do skryptu to musi być return,przecież to dopiero alert miał wyświetlić zawartość, a w zmiennej miał być string bo sam go tam przypisałem biggrin.gif
Do tego używałem complete, bo przeczytałem, że to się wyświetli dopiero po zakończeniu, a success już na samym połączeniu ze skryptem, a przecież chciałem to zwrócić dopiero po wykonaniu warunku, czyli jakby na końcu skryptu biggrin.gif
Chyba logika mnie zawodzi. Mimo tego już działa, dzięki
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.