POST к PHP с успехом, но PHP код не выполняется - PullRequest
0 голосов
/ 27 апреля 2020

Я использую JQuery метод post для отправки данных в сценарий PHP из внешнего сценария JS.

const Url2 = 'MainPage2.php?action=updatePurchaseToDB';
   const data = {
       name: "test name"
   }
   //takes 3 arg, url, data to sedn, call back function, data in callback holds the page reqeusted in data
   $.post(Url2,data, function(data, status){
       console.log('${data} and status is ${status}');
       alert("PHP Retrned form server:  Status " + status);
   });

Это код PHP в MainPage2. php :

if ($_POST['action'] == 'updatePurchaseToDB'){
    echo "<script>console.log('UPDATE PURCHASE CALLED!');</script>";
    echo "PHP CALLED AS PURCHASE BUTTON PRESSED";
  }

Функция обратного вызова возвращает сообщение Success , но я не вижу никаких свидетельств того, что код PHP выполнен, то есть на консоли ничего не напечатано.

Чего-то не хватает в моем вызове сценария PHP?

1 Ответ

2 голосов
/ 27 апреля 2020

Поскольку действие находится в URL, вам необходимо получить к нему доступ с помощью $_GET['action'], а не $_POST['action']. Если вы хотите получить его в данных POST, вам нужно добавить его к объекту data:

const data = {
    action: "updatePurchaseToDB",
    name: "test name"
}

Ваш вызов console.log() неправильно подставляет переменные. Для создания литерала шаблона необходимо использовать обратные галочки.

   $.post(Url2,data, function(data, status){
       console.log(`${data} and status is ${status}`);
       alert("PHP Returned form server:  Status " + status);
   });
...