Не понимаю, почему не передаётся переменная id? Код (Javascript): <script> var likeComment = document.querySelectorAll('.like-comment'); likeComment.forEach(function(element, i){ likeComment[i].addEventListener('click', function(e) { e.preventDefault(); console.log(e.target.dataset.id); var commentId = e.target.dataset.id; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (this.readyState==4 && this.status==200) { likeComment[i].innerHTML=this.responseText; } } xmlhttp.open("POST","/comment/like", true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') xmlhttp.send("id="+commentId); }) }) </script> Отправка работает методом POST, это я проверял, выведет 4444, если убрать $id PHP: public function like($id) { if ( $_SERVER['REQUEST_METHOD'] == 'POST' ){ echo 4444; } echo $id; echo true; } Но почему, если в send, что-то передать, то это не передаётся? Выводит ошибку Uncaught Invoker\Exception\NotEnoughParametersException: Unable to invoke the callable because no value was given for parameter 1 ($id) in
Кто вас заставляет так делать если можно {id: commentId} ? console.log(commentId)? like($id) - а роут точно так работает? var_dump($_POST)? А может xmlhttp.open("POST","/comment/like/"+commentid,true); ?
один момент. Ты думаешь что отправленные post данные в ключе id автоматически запишутся в переменную $id ? когда смеяться можно ?
@nospiou в консоле отображается, использую FastRoute --- Добавлено --- @MouseZver должны же записаться, у меня так в старом проекте --- Добавлено --- @MouseZver Почему параметр не передаётся?
не должны... видимо глобальные переменные включены в старом проекте - это зло а смотреть что приходит надо в $_POST['id']