Как передать несколько параметров в AJAX функцию?

пытаюсь передать два параметра функции, но при нажатии на кнопку выпадает ошибка

введите сюда описание изображения

Код:

<?php
if (isset($_SESSION['user'])){
  echo "<a href='#' class='btn btn-secondary card-link float-right' onclick='addAjax($id, $desc)'>Добавить в избранное</a>";
}
?>

<script type="text/javascript">
     
     function addAjax(id, desc){
         $.ajax({

              type:'post',
              url:'like.php',
              data:{'add_id': id, description: desc},
              success:function(data){
                   alert("Добавлено в профиль");
                  
              }

         });
     }

  $id = $_POST['add_id'];
  $desc = $_POST['description'];
  
  $query = mysqli_query($mysqli,"INSERT INTO likeexercise(`username`, `description`, `id_exercise`) VALUES ('$_SESSION[user]', $desc, $id)"); 

Если оставить один параметр, то все работает как надо, а с двумя проблема


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

Автор решения: romanown

вероятно параметры передаются все же не так. надеюсь автор уже нашел решение, но опишу для тех у кого такая же проблема. исходя из предоставленной информации можно предположить, что именно проблема в использовании функции передачи. вот пример из указанной статьи, который покажет разницу между Вашим кодом и этим.

$.ajax({
      type: "POST",
      url: "some.php",
      data: { name: "John", location: "Boston" }
    }).done(function( msg ) {
      alert( "Data Saved: " + msg );
    });

обратите внимание на разницу в строке где указаны передаваемые параметры примера data: { name: "John", location: "Boston" } и Вашей data:{'add_id': id, description: desc}, возможно это и есть причина. вот описание работы функции для более подробного ознакомления, с примерами. https://ruseller.com/jquery?id=11

→ Ссылка
Автор решения: da-ns

Ошибка в строке, где выполняется генерация HTML-кода ссылки:

echo "<a href='#' class='btn btn-secondary card-link float-right' onclick='addAjax($id, $desc)'>Добавить в избранное</a>";

Второй параметр $desc функции addAjax имеет строковое значение и должен быть заключен в кавычки (с экранированием, поскольку строка кода уже сама в кавычках):

onclick='addAjax($id, \"$desc\")'
→ Ссылка