Problem:
Sie müssen Fehler aus einem JSON analysieren Antwort und zeigen Sie sie in einem Dialogfeld in Ihrem jqGrid an. Idealerweise soll das Raster nach „STATUS: ‚ERROR‘“ suchen und alle Fehlermeldungen entsprechend anzeigen.
Antwort:
Es ist wichtig, die Richtlinien des HTTP-Protokolls zu befolgen bei der Kommunikation zwischen Server und Client. Die standardmäßige erfolgreiche Antwort umfasst Folgendes:
HTTP/1.1 200 OK ... Content-Type: application/json ... {"page":"1",....}
Wenn die URL hingegen nicht vorhanden ist, beginnt die Serverantwort mit:
HTTP/1.1 404 Not Found
jqGrid basiert auf HTTP-Statuscodes um zu bestimmen, wie mit Serverantworten umgegangen wird. Beispielsweise gibt ein 404-Statuscode an, dass das Raster nicht versucht, JSON-Daten zu interpretieren.
Democode:
Um dieses Konzept zu demonstrieren:
$("#list").jqGrid({ url: 'Unknown.json', // file with this name doesn't exist datatype: 'json', // ... other relevant parameters loadComplete: function () { alert("OK"); }, loadError: function (jqXHR, textStatus, errorThrown) { alert('HTTP status code: ' + jqXHR.status + '\n' + 'textStatus: ' + textStatus + '\n' + 'errorThrown: ' + errorThrown); alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText); } });
Dieser Code zeigt die folgenden Warnungen an:
Benutzerdefinierter Fehler Handhabung:
Wenn Sie Fehlerantworten anders behandeln möchten, können Sie dies tun Verwenden Sie Fehler-HTTP-Statuscodes. Unten ist eine erweiterte Version der LoadError-Implementierung:
loadComplete: function () { // remove error div if it exists $('#' + this.id + '_err').remove(); }, loadError: function (jqXHR, textStatus, errorThrown) { // remove error div if it exists $('#' + this.id + '_err').remove(); // insert div with the error description before the grid $(this).closest('div.ui-jqgrid').before( '<div>
Diese Funktion entfernt alle vorhandenen Fehler-Div und fügt dann ein neues Div vor dem Raster ein, um die Fehlermeldung anzuzeigen. Die decodeErrorMessage-Funktion kann angepasst werden, um Fehlermeldungen in Ihrem bevorzugten Format zu verarbeiten.
Verwendung von displayErrorMessage:
Free jqGrid bietet eine integrierte displayErrorMessage-Methode zum Anzeigen von Fehlermeldungen in ein Fehler div über dem Raster. Bevor Sie die benutzerdefinierte Fehlerbehandlung verwenden, wird empfohlen, das Standardverhalten zu testen, um sicherzustellen, dass es Ihren Anforderungen entspricht.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit serverseitigen Fehlern und der Formularvalidierung in jqGrid um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!