symfony-Response-json ajax
Ich bin neu in Symfony ich wollte tun, eine manipulation so bekomme ich eine Liste aller Einbauteile in der Entität Thema über Ajax, aber die Antwort ist immer noch "undefined" Hier der code der text stark
vue
$(document).ready(function () {
var $theme = $('#theme');
$theme.append('<option value="">Choisir un thème</option>');
$.ajax({
type: 'post',
url: '{{ path('web_site_liste_theme_cmb') }}',
dataType: 'json',
beforeSend: function () {
$('#themediv').append('<div id="loading" style=" float: left; display: block;"><img src="{{ asset('bundles/BackBundle/img/loadingicon.gif') }}"/></div>');
},
success: function (json) {
{#$('#theme').append({{ dump(json)}});#}
console.log(json.value);
$.each(json, function (index, value) {
//console.log(value);
$('#theme').append('<option value="' + value.id + '">' + value.name + '</option>');
$('#loading').remove();
});
}
});
});
Controller
public function ListeThemeAction(Request $request)
{
$em = $this->getDoctrine()->getEntityManager();
if ($request->isXmlHttpRequest()) {
$themes = $em->getRepository('WebSiteBackBundle:theme');
$themes = $themes->findAll();
//var_dump($themes);
return new JsonResponse($json);
}
return new JsonResponse('no results found', Response::HTTP_NOT_FOUND); //constant for 404
}
die server-Antwort 200 OK, scheint alles zu klappen, ich habe die gleiche Anzahl von Daten in der Datenbank, aber ich kann nicht Lesen, die Objekte, Werte
und hier ist die :
console.log(json)
- können Sie uns etwas bewegen-info? was ist die Antwort vom server? was ist 'undefined'? die "json.Wert"?
- die server-Antwort 200 OK, scheint alles zu klappen, ich habe die gleiche Anzahl von Daten in der Datenbank, aber ich lese nicht die Objekte, Werte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es viele Möglichkeiten, das zu tun, ich zeige Ihnen, einer von Ihnen.
Erstens, bereiten Sie Daten zum senden von controller und gibt einen
JsonResponse
Instanz, mit der Sie Daten:Zweite, verwenden Sie die gleichen Daten-Struktur, um den Zugriff von Javascript-Rückruf-Funktion:
In Ihrer Frage werden Ihre Daten gesendet wurde, die das array von Objekten, so dass Sie Bedürfnisse Schleife für die variable "json" (array) und Zugang zu jede Eigenschaft des Objekts.
WebSiteBackBundle:Theme
Unternehmen, wenn es enthält die "id" und "value" - Eigenschaften. Ansonsten, Sie sollten sich vorbereiten, diese Daten vor dem senden die json-Antwort in deinem controller.gut, ich fand die Antwort musste ich die controller machen es möglich.
danke Yonel !
hier ist ein link, der mir geholfen Json-in-controller
Controller
Vue
In der Hoffnung es hilft jemand. ich danke Ihnen allen für Ihre Antwort es hat mir sehr geholfen