Ich verwende jQuery
, um mein eingebautes Formular zu bearbeiten Symfony
.
Ich zeige das Formular im jQuery
Dialog und sende es dann ab.
Die Daten werden korrekt in die Datenbank eingegeben.
Aber ich weiß nicht, ob ich etwas JSON
zurückschicken muss jQuery
. Eigentlich bin ich etwas verwirrt JSON
.
Angenommen, ich habe meiner Tabelle mit `` jQuery eine Zeile hinzugefügt. Wenn ich das Formular sende, möchte ich diese Zeilendaten nach dem Senden der Daten zurücksenden, damit ich die Tabellenzeile dynamisch hinzufügen kann, um die hinzugefügten Daten anzuzeigen.
Ich bin verwirrt, wie ich diese Daten zurückbekommen kann.
Dies ist mein aktueller Code:
$editForm = $this->createForm(new StepsType(), $entity);
$request = $this->getRequest();
$editForm->bindRequest($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
return $this->render('::success.html.twig');
}
Dies ist nur die Vorlage mit der Erfolgsmeldung.
quelle
Symfony 2.1 verfügt über eine JsonResponse- Klasse.
Das übergebene Array wird JSON-codiert, der Statuscode wird standardmäßig auf 200 gesetzt und der Inhaltstyp wird auf application / json festgelegt.
Es gibt auch eine praktische
setCallback
Funktion für JSONP.quelle
Seit Symfony 3.1 können Sie JSON Helper http://symfony.com/doc/current/book/controller.html#json-helper verwenden
quelle
Um die Antwort von @thecatontheflat zu vervollständigen, würde ich empfehlen, Ihre Aktion auch in einen
try … catch
Block zu packen . Dadurch wird verhindert, dass Ihr JSON-Endpunkt bei Ausnahmen beschädigt wird. Hier ist das Skelett, das ich benutze:Auf diese Weise verhält sich Ihr Endpunkt auch bei Fehlern konsistent und Sie können sie direkt auf Client-Seite behandeln.
quelle
Wenn Ihre Daten bereits serialisiert sind:
a) Senden Sie eine JSON-Antwort
b) Senden Sie eine JSONP-Antwort (mit Rückruf)
Wenn Ihre Daten serialisiert werden müssen:
c) Senden Sie eine JSON-Antwort
d) Senden einer JSONP-Antwort (mit Rückruf)
e) Verwenden Sie Gruppen in Symfony 3.xx
Erstellen Sie Gruppen in Ihren Entitäten
Normalisieren Sie Ihr Doctrine-Objekt innerhalb der Logik Ihrer Anwendung
quelle