Показать сообщение отдельно
  #1 (permalink)  
Старый 29.03.2018, 19:04
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

ajax PHP метод POST
Не понимаю, почему не передаётся переменная id?

<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

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
Ответить с цитированием