我也浏览了 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/