2011-07-05 10 views
6

mam kod PHP snippet następujące:Jak wyzwolić "error" zwrotnego w jQuery AJAX rozmowy z użyciem PHP

if (!($result = mysql_query($query, $link))) { 
    die("Invalid SQL query: " . $query); 
} 

I mam kodu jQuery snippet następujące:

$.ajax({ 
     url: "....search.php", 
     data: ..., 

     async: false, //to trigger error alert 

     success: function(xml) { 
      ... 
     }, 

     error: function(xml) { 
      foundError = true; 
     }, 

     dataType: "xml" 
    }); 

if(foundError) { 
     setProgress("Could not complete the search because an error was found", ProgressBar.ERROR); 
} 

Czy czy możliwe jest wywoływanie wywołania błędu funkcji wywołania błędu JQuery przez wywołanie matrycy? Jeśli nie, w jaki sposób wyzwoliłbym to w inny sposób?

Odpowiedz

9

Spróbuj tego:

if (!($result = mysql_query($query, $link))) { 
    header("HTTP/1.1 404 Not Found"); 
} 

Choose the error appropriate for your application

+0

Fajnie! Jeśli wysyłam dane wcześniej (np. Przed napisaniem kodu PHP miałem echo "hello world";) to nie działałoby, prawda? Zastanawiasz się, czy są inne sposoby. – BlackSheep

+0

@BlackSheep, 'header()' wywołania muszą być wykonane przed innymi wyjściami (tj. 'Echo" hello world "'). –

+0

Możesz łatwo wywołać ob_start() u góry strony, ob_end_flush() u dołu, a następnie wywołać ob_clean() tuż przed nagłówkiem, aby usunąć bufor wyjściowy, jeśli cokolwiek jest w nim. – AlienWebguy

0

Nie można przesłać kodu po stronie klienta z serwera (przynajmniej nie w sposób, jakiego oczekujesz).

Korzystając z AJAX, najlepiej używać odpowiednich kodów odpowiedzi HTTP i mieć jQuery działać na tych, których dotyczy błąd: wywołanie zwrotne.

0

Nie można uzyskać dostępu do ajax błędu takiego jak nie było ajax error. Co możesz zrobić, to sprawdź swoją zmienną xml w dziale sukcesu; jeśli zaczyna się od Invalid SQL query wiesz, że wystąpił błąd php.

Aby uporządkować sprawy, prawdopodobnie powinieneś zwrócić więcej informacji (xml/json) w przypadku błędu zamiast tylko ciągu znaków.

Powiązane problemy