функция php не возвращает результаты вызова ajax - PullRequest
0 голосов
/ 12 октября 2018

Я прошел через решения, предложенные для подобных вопросов в stackoverflow и других, а также.(Похоже, это не только я с этой проблемой).так что я наконец отправляю вопрос с надеждой найти какое-то решение.

Я посылаю 2 числа в функцию php через вызов ajax и ожидаю получить сумму от функции.Я думаю, что я прав, но не уверен, что половина ajax верна, а половина нет, то есть я могу послать значения в функцию php (я думаю), но я не могу получить сумму, вместо этого в сообщении об успехе я получаю «html-данные страницы»:D

Можете ли вы указать мою ошибку и жизнеспособное решение.Спасибо, милые люди:)

Ajax:

$(document).ready(function(){
    $('#myForm').submit(function(event){

        var num1 = Number($('#num1').val());
        var num2 = Number($('#num2').val());
        var summ = num1+num2;
        //var data = $('#myForm').serialize();
        console.log(" nums are " + summ); //totally works
        var myNums = "num1= " + num1 + " & num2=" + num2; 
        alert(myNums);       //totally works
        event.preventDefault();
        $.ajax({
            url:'arrayTest.php',
            type: 'POST',
            data: {num1 : num1,
                    num2 : num2 },
            success:function(data){
                console.log(" <br>success yr data is " + myNums);
                var results = data;
                alert(data); // i get html of the entire page containing form
                return false;
            },
            error:function(error){
                console.log(" sorry error " + error); // get this when i add header in php 
            }
        });
    });

});

html:

<form id ="myForm" method="post" action="">  

  number1: <input type="number" name="num1" id="num1">
  <br><br>
  number2: <input type="number" name="num2" id="num2">
  <br><br>
   <br><br>
  <input type="submit" id ="submit" name="submit" value="add">  
</form>

php:

if(isset($_POST['submit'])){

    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $result= $num1 + $num2;
    //echo "num1 is ".$num1;// **i didnt see any echo** 

    echo " your result ". $result; // **i didnt see any echo** 
    return ($result);
}

PS: html и ajaxнаходится на той же странице, функция PHP в другой;Я вижу сообщение

  XHR finished loading: POST "http://localhost/phpTest/arrayTest.php"." 

в консоли (я понятия не имею, что это значит !!)

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Если ваш код работает, просто отключите XMLHttpRequests из консоли Chrome.

  • откройте консоль -> щелкните по вертикали «...» в правом верхнем углу -> перейдите в настройки и снимите флажок «Журнал»XMLHttpRequests "под заголовком" Консоль ".
0 голосов
/ 13 октября 2018

Ваша форма определяет num1, num2 и add, но вы используете submit, который не определен.

if(isset($_POST['add'])){

  $num1 = $_POST['num1'];
  $num2 = $_POST['num2'];
  $result= $num1 + $num2;
  //echo "num1 is ".$num1;// **i didnt see any echo** 

   echo " your result ". $result; // **i didnt see any echo** 
   return ($result);
}

СОВЕТЫ: ​​ Всегда включайте среду отчетов об ошибках и среду разработки и используйте print_r () для проверки переменной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...