javascript - php 函数不将结果返回给 ajax 调用

标签 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"." 

在控制台中(我不知道这意味着什么!!)

最佳答案

您的表单定义了 num1、num2 并添加,但您使用的是未定义的提交。

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()检查变量

关于javascript - php 函数不将结果返回给 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52786606/

相关文章:

javascript - 如何内联注册 jQuery 点击处理程序?

javascript - 如何将额外参数传递给事件处理回调?

javascript - 输入和下拉有不同的值

javascript - 用facebook做ajax功能

javascript - 如何配置 Karma 在关闭时不重启浏览器?

php - 是否有任何 PHP 函数可以通过不区分大小写的比较来解决另一个数组值字符串中的数组值匹配?

php - PHP 中 XPath 的 'undefined namespace prefix' 问题?

php相当于C的fputc

jquery - 点击在redactor js所见即所得html编辑器中显示和编辑

javascript - 在textarea中隐藏标签但要实现标签的效果