AJAX отправка переменной

Такой вопрос. Хочу отправить в обработчик JS переменную Мой код JQuery выглядит так

var modalcart = document.getElementById("modal_cart");
var btncart = document.getElementById("btn_modal_cart"); 
var openModalEntry = document.querySelectorAll("#btn_modal_cart");

$(document).ready(function()  {
openModalEntry.forEach(function(button) {
  button.addEventListener("click", function(event) {
    event.preventDefault();
    var product_id = $(this).attr('value'); 
    console.log(product_id);
    //$("#modal_cart").css('display','block');


    $.ajax({
 
      type:'POST',
      //F:\openserver\OSPanel\domains\moskas-local.ru\public_html\modules\catalog\index.action.php
      /*url:'/index.action.php'*/
      url:'/index.action.php',
      dataType:'json',
      data:{"product_id": product_id},
      success:function(result){
         $('#product_id').html(result);
      }
      /*function () {
         alert("Успешно");
      }*/
      });

  })
});
});

Тут при нажатии на ссылку с переменную записывается её value и передается в переменную var product_id.

Передаю в обработчик для теста созданный и при var_dumpе выводит NULL массив $_POST и все что с ним связанно, но! выводит на страницу в div с id = "product_id" идшник ссылки по которой был клик.

php обработчик

if($_POST['product_id']) {
    $param = $_POST['product_id'];
    echo $param;
    $test = "ok";
}
else{
$test = "neok";
}

В файле шаблона заинклюдил файл обработчика и попытался вывести на страницу тестовый текст всегда пишет "neok". Такое чувство, что массив $_POST просто не заполняется. Никак не могу понять, почему не работает отправка.


Ответы (1 шт):

Автор решения: Darth KYL

Какая версия jquery? Для версий больше 1.9 нужно использовать method:'post' вместо type:'post'. Так же если не уверены каким методом отправляется запрос то можно вместо $_POST использовать $_REQUEST

→ Ссылка