PHP函数不返回结果到ajax调用

时间:2018-10-12 20:29:19

标签: javascript php jquery ajax web

我经历了针对stackoverflow等类似问题的解决方案。 (似乎不仅是我这个问题)。所以我终于发布了这个问题,希望能找到解决方案。

我正在通过ajax调用向php函数发送2个数字,并希望从函数中获取和。我认为我不确定,但是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 :(得分:1)

您的表单定义num1,num2并添加,但是您使用的是未定义的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()检查变量

答案 1 :(得分:0)

如果您的代码有效,只需从chrome控制台禁用XMLHttpRequests。

  • 打开控制台->单击右上角的垂直“ ...”->进行设置,然后取消选中“控制台”标题下的“日志XMLHttpRequests”。