2016-04-02 8 views
1

Ich versuche, einige einfügen in die Datenbank dann sehen Sie die Beitragsliste und Anzeige von Ajax, aber ich bin nicht ganz sicher, wie es geht.Wie man jQuery ajax in Silex verwendet Einfügen

Hier ist meine Route:

$app->match('/status', 'Post\StatusPost\Controller\StatusPostController::statusAction')->bind('main'); 

Dann auf meinem Controller verarbeite ich der Einsatz stopft dann das Unternehmen Modell zugreifen und in die

Ansicht passiert
$posts = new Post(); 
$posts = $posts->allPosts($app); 

return $app['twig']->render('status.html.twig', [ 
    'form' => $form->createView(), 
    'posts' => $app->json($posts), 
]); 

Dann auf meiner Meinung nach ist es eine nur einfacher Textbereich. So auf den Posten einreichen sollte es über

Ajax Anzeigen

Hier ist mein js Skript

$('#status-btn').click(function(){ 
$.getJSON('/status', function(data){ 
    console.log(data); 
    var html; 
    $.each(data, function(entryIndex, entry){ 
    html += '<div class="status-container">'; 
    html += '<h3 class="status-title">' + entry.name + '</h3>'; 
    html += '<img src="' + window.location.href + '/images/' + entry.image + '">'; 
    html += '<p class="status-content">' + entry.status + '</p>'; 
    html += '<span class="status-time">' + entry.timestamp + '</p>'; 
    html += '</div>'; 
    }); 
    $('.content-container').html(html); 
}); 

});

Aber beim Einreichen passiert nichts.

+0

woher kommt 'status-btn'? Wird es dynamisch hinzugefügt? – guradio

+0

Oh Entschuldigung das ist auf der Ansicht Vorlage – dashred

+0

' {{Form_widget (Formular)}} ' – dashred

Antwort

0

Es sieht so aus, dass Sie GetJSON sagen, aber Sie senden HTML? kann nicht arbeiten. Sie sollten eine JsonResponse senden oder Sie müssen die Header richtig 'Content-Type: application/json' einstellen. Wenn Sie GetJSON verwenden, versucht der Browser die Antwort automatisch aus dem PHP-Skript zu konvertieren (egal ob Silex) und der Header muss vom Typ JSON sein.