Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX]Obsługa błędów
S_Olewniczak
post 10.07.2009, 14:13:33
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Tworzę aplikację w ajaksie i mam pewien problem. Stworzyłem skrypt w PHP usuwający dane z bazy danych. W przypadku poprawnego usunięcia, skrypt w PHP wypisuje ciąg znaków: "removed", w przeciwnym wypadku wyświetla stronę informującą o błędzie. Załóżmy, że ajax wywołuje ten skrypt i napotyka na problem, jak go teraz przedstawić użytkownikowi? Czy nadpisać znacznik html, wyświetlając stronę z błędem(to mój pomysł)? Jak Wy obsługujecie błędy ajax? Czekam na propozycje.

Ten post edytował S_Olewniczak 10.07.2009, 14:46:42
Go to the top of the page
+Quote Post
skowron-line
post 10.07.2009, 14:26:55
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Ale korzystasz z jakiejś biblioteki questionmark.gif w advAJAX jest coś w takiego jak onError.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
wookieb
post 10.07.2009, 14:28:47
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat


JA ci dam "obsługę". Wracaj do szkoły i się dokształć.
Jakie problem napotyka ajax?


--------------------
Go to the top of the page
+Quote Post
viking
post 10.07.2009, 14:29:17
Post #4





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

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


Ale chodzi ci o błąd XHR (np. użytkownik idzie off-line) czy o błąd php?
Na pierwsze to np. w YUI YAHOO.util.Connect.xEvent.subscribe(); Na drugie zwracam odpowiedź JSON i buduje/modyfikuję DOM.


--------------------
Go to the top of the page
+Quote Post
vokiel
post 10.07.2009, 14:36:03
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


W jQuery obsłUga błędów wygląda tak:
  1. <?php
  2. $.ajax({
  3.    type: "POST",
  4.    url: "test.php",
  5.    error: function (XMLHttpRequest, textStatus, errorThrown) {
  6.            $('#response').html(textStatus + ' ' + errorThrown).addClass('error').fadeIn();
  7.    },
  8.    success: function(data){
  9.        if (data=="removed"){
  10.            $('#response').html('Usunieto').addClass('ok').fadeIn();
  11.        }else{
  12.            $('#response').html(data).addClass('error').fadeIn();
  13.        }
  14.    }
  15. });
  16. ?>


--------------------
Go to the top of the page
+Quote Post
Maxik
post 10.07.2009, 18:20:07
Post #6





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Po stronie PHP wyłącz dyrektywę html_errors ini_set" title="Zobacz w manualu PHP" target="_manual http://pl.php.net/manual/en/errorfunc.conf...ini.html-errors Wtedy możesz sprawdzić i wyświetlić błąd:
Kod
if(obj.responseText=='removed'){
// zrób coś
} else{
// zrób coś innego
}


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
S_Olewniczak
post 10.07.2009, 18:43:04
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Dziękuję za pomoc i przepraszam za błąd. Mam jeszcze jedno pytanie. Jak w wygląd strony wkomponować komunikat o błędzie tak aby był przyjemny w odbiorze dla użytkownika? Gdzie wyświetlić komunikat o błędzie?
Go to the top of the page
+Quote Post
Crozin
post 10.07.2009, 22:03:23
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Na pewno nie przez alert(). Może to być w formie pojawiającego się boxa (czy to w jakimś "globalnym" miejscu strony czy niedaleko elementu, w który przed chwilą klikałem (jakiś przycisk etc.). Dodatkowo często można spotkać prosty i estetyczny mechanizm informowania o błędzie/powodzeniu w postaci odpowiedniego koloru tła elementu, które płynnie w ciągu sekundy-dwóch przechodzi w jakiś neutralny kolor (pasujący do reszty projektu).
Go to the top of the page
+Quote Post
vokiel
post 11.07.2009, 17:11:53
Post #9





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Ostatnio stosuję 3 klasy w css do komunikatów pomyślnych, błędów, informacji.
- ok - zielona ramka, zielonkawe jaśniejsze tło (czasem ico ok)
- error - czerwona ramka, czerwonawe tło (czasem czerwony wykrzyknik)
- info - niebieska ramka, niebieskawe tło (czasem znak zapytania, lub niebieski wykrzyknik)

Miejsce? Zwykle koło topu strony, lub bezpośrednio koło miejsca z którego nastąpiło wywołanie akcji.

Do tego w jQuery wpisanie odp do diva, nadanie klasy, pokazanie, przytrzymanie widocznego przez 2,5sec, ukrycie.
  1. <?php
  2. $('#response').html(data).addClass('error').fadeIn().animate({opacity:1.0},2500).fadeOut();
  3. ?>


--------------------
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: 10.07.2025 - 05:27