Ajax отправляет данные, но Php-файл не получает их

Я провел последние 10 или около того дней, пытаясь исправить это к некоторому успеху, но я все еще застрял. Я создаю систему онлайн-бюджетирования, которая принимает значения Javascript, отправляет их через Ajax в PHP, где они затем отправляются в базу данных. Вот мой код для javascript

$.ajax({
   url: 'yup.php',
   type:'post',
   data:{
          'Sal': Sal,
          'TaxReb': TaxReb,
          'RetInv': RetInv,
          'IntSave': IntSave,
          'Pen': Pen,
          'Dividends': Dividends,
          'Wages':Wages,
          'Loans':Loans,
          'Benefits':Benefits,
          'IncOther': IncOther,
          'Tax': Tax ,
          'Groc': Groc ,
          'Take':Take ,
          'Rent': Rent ,
          'Elec': Elec ,
          'Trans': Trans ,
          'Mort': Mort ,
          'LoanPay':LoanPay ,
          'Goods': Goods ,
          'ExpOther': ExpOther ,
          'TotalInc':TotalInc ,
          'TotalExp': TotalExp ,
          'NetInc':NetInc
    },

    success: function(data){
        alert(data);
        window.location.href='yup.php';
    }
});

Значения являются целыми числами, которые работают с файлом Jscript. Предупреждение дает мне это сообщение:

Array(
[Sal] => 33245
[TaxReb] => 324523
[RetInv] => 3245
[IntSave] => 2345
[Pen] => 3524
[Dividends] => 5342
[Wages] => 35425342
[Loans] => 5432
[Benefits] => 254325
[IncOther] => 4352
[Tax] => 34
[Groc] => 3434
[Take] => 34
[Rent] => 34
[Elec] => 34
[Trans] => 34
[Mort] => 34
[LoanPay] => 34
[Goods] => 34
[ExpOther] => 34
[TotalInc] => 36061675
[TotalExp] => 3740
[NetInc] => 36057935
)`

Мой PHP код это:

<?php header(' charset=utf-8');
print_r($_POST)
//$Sal=$_POST['Sal'];
//echo $Sal;

Однако на моей странице PHP это дает мне это:
Матрица ( )
И когда я раскомментирую переменные, это даст мне ошибку:

Примечание: неопределенный индекс: Sal in C:xampphtdocsexampleyup.php on line 2

Я удалил print_rпри попытке получить фактическую переменную.
Когда я использую метод запроса сервера, предупреждение говорит post, тогда как страница php говорит get . Это может быть частью проблемы, но я понятия не имею, как это исправить, и другие страницы, которые я смотрел на этом или других веб-сайтах. Вся помощь ценится.

1 ответ

  1. Вы делаете два отдельных запроса yup.php. Есть запрос POST, сделанный с помощью AJAX, и есть запрос GET, сделанный при перенаправлении пользователя yup.phpв success()функции. Запрос GET, который является отправкой информации обратно пользователю для отображения на странице, не получает информацию из запроса AJAX, потому что, ну, вы не отправляли серверу никакой информации в запросе GET. Ранее вы сделали отдельный почтовый запрос, на yup.phpкоторый получили данные и приступили к запуску вашего скрипта (т. е. распечатали информацию).

    Если ваша цель состоит в том, чтобы представить пользователю некоторый ответ от сервера после отправки AJAX-запроса, то вы должны использовать dataаргумент в своей success()функции, чтобы сделать это. То, что вы сделали с alert()одним из способов представить данные, хотя, вероятно, неудовлетворительно. То, что вы, вероятно, хотите сделать, это использовать JavaScript, чтобы вставить эти данные где-то в текущей странице.

    Важно понимать, что вы делаете два отдельных запросаyup.php, только один из которых получает данные, отправленные с помощью AJAX.