Réponse AJAX avec PHP-MVC
Bonjour, je viens solliciter votre aide, je souhaite récupérer le dernier commentaire insérer pour pouvoir l'afficher sans recharger ma page. Mais sa me retourne toujours NULL, sauf que lorsque je regarde dans la partie network dans l'onglet response ma réponse est présente.
Routeur :
Code:
1 2 3 4 5
| ($_GET['url'] === 'postComment') {
if (isset($_GET['postId']) AND !empty($_GET['postId'])) {
if (!empty($_POST['author']) AND !empty($_POST['contents'])) {
$this->_frontController->postComment($_GET['postId'], $_POST['contents'], $_POST['author']);
} |
Contrôleur :
Code:
1 2 3 4 5 6
| public function postComment($postId, $contents, $author)
{
$comments = $this->_comment->addCommentFromPost($postId, $contents, $author);
echo json_encode(require './View/displayCommentsView.php');
// require './View/displayCommentsView.php';
} |
AJAX :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| document.getElementById("commentForm").addEventListener("submit", function (event) {
event.preventDefault();
let dataForm = new FormData(this);
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
console.log(this);
let result = this.response;
comments(result);
}
};
xhr.open("POST", this.action, true);
xhr.responseType = "json";
xhr.send(dataForm);
});
function comments(resultAjax) {
let div = document.getElementsByClassName("displayComments");
console.log(resultAjax);
} |