Hier ist eine Aktion:Laravel & Ajax mit Fehlern HTML-Formular sendet
public function postMessageAjax(Request $request)
{
$this->validate($request, [
'username' => 'required|string|regex:/^[a-zA-Z\d]+$/',
'email' => 'required|string|email',
'homepage' => 'nullable|string|url',
'text' => 'string',
'captcha' => 'required|captcha',
],
[
'captcha.captcha' => 'The captcha is incorrect',
'username.regex' => 'Use English letters and digits only',
]);
$message = new Message();
$message->username = $request->get('username');
$message->email = $request->get('email');
$message->homepage = $request->get('homepage');
$message->text = strip_tags($request->get('text'));
$message->ip = $request->ip();
$message->browser = get_browser($request->header('User-Agent'))->browser;
$message->save();
return view('Guestbook.postMessage');
}
Und hier ist die Ansicht:
{!! BootForm::open(['id' => 'messageForm']) !!}
{!! BootForm::text('username') !!}
{!! BootForm::email('email') !!}
{!! BootForm::text('homepage') !!}
{!! BootForm::textarea('text') !!}
{!! captcha_img('flat') !!}
{!! BootForm::text('captcha') !!}
{!! BootForm::submit('Send') !!}
{!! BootForm::close() !!}
Das Problem ist, dass Laravel bestimmt irgendwie, dass das ist eine Ajax-Anfrage und Setzen Sie ein JSON von Fehlern (wenn sie vorhanden sind) auf Response, anstatt HTML-Code des Formulars und Fehlermeldungen für jeden einzelnen Eingang abzurufen. Die Frage ist: Wie zwinge ich es dazu, die Ansicht mit Fehlern zu rendern, als wäre es nicht über Ajax?
UPDATE: das ist, was ich (das Formular selbst und Fehler, wenn sie vorhanden sind) erhalten möchten:
Für @OuailB:
Ich habe habe gerade bemerkt, dass wenn ich eine normale POST-Anfrage mache, es mich auf die gleiche Seite durch eine GET-Anfrage weiterleitet, so scheint es, als ob die Fehlermeldungen tatsächlich im Körper des GETS erscheinen, nicht POST, also gibt es vielleicht keinen Weg. Ich werde darüber nachdenken, danke für deine Hilfe!
ich ge t das Formular, aber es gibt keine Fehler darin, obwohl es sein sollte. – Razip
Sie müssen Code hinzufügen, um die Fehler anzuzeigen, habe ich meinen Beitrag bearbeitet – OuailB
So gibt es keine Möglichkeit, wie es im Bild ist? – Razip