这是我的HTML代码:
<form name="sumForm" action="">
<input type="text" id="num1" name="num1" />
<input type="text" id="num2" name="num2" />
<input type="submit" id="sum" value="sum"/>
</form>
这是我的jquery代码:
$("#sum").click(function() {
var num1 = $("#num1").val();
var num2 = $("#num2").val();
var dataString = "num1="+ num1 + "&num2=" + num2;
$.ajax({
type: "POST",
url: "apotelesma.php",
data: dataString,
success: function() {
alert(dataString)
return false;
}
});
return false;
});
这是apotelesma.php脚本:
<?php
$num1 = isset($_POST['num1']);
$num2 = isset($_POST['num2']);
$apotelesma = 0;
$apotelesma = $num1 + $num2;
echo $apotelesma;
?>
我无法弄清楚如何获得结果。我不知道包含php脚本来显示结果是否正确。
答案 0 :(得分:2)
isset
检查是否设置了值并返回布尔值,因此$num1
和$num2
将为true或false。所以你没有把实际值加起来。
答案 1 :(得分:1)
问题在于您将$num1
和$num2
设置为布尔值..
试试这个
$num1 = isset($_POST['num1']) ? $_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ? $_POST['num2'] : 0;
答案 2 :(得分:1)
isset()
会返回true
或false
,而使用true
或false
(讽刺)进行任何添加都非常困难。
您需要将其更改为:
$num1 = isset($_POST['num1']) ? $_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ? $_POST['num2'] : 0;
return $num1 + $num2;
我的问题: 你有没有理由对ajax做一个补充?为什么不在没有ajax请求的javascript中?
答案 3 :(得分:0)
'isset'返回一个表示变量是否已设置的布尔值。
你需要:
<?php
if (!isset($_POST['num1']) || !isset($_POST['num2']))
exit;
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$apotelesma = 0;
$apotelesma = $num1 + $num2;
echo $apotelesma;
?>
那么你的成功回调应该包括
$('#result').html(dataString);
当您进行ajax调用时,您的页面不会像普通表单一样刷新,因此您不希望使用包含。
答案 4 :(得分:0)
其他人在你的php文件中指出了一个错误,但你的javascript中也有错误[too]:
$.ajax({
type: "POST",
url: "apotelesma.php",
data: dataString,
success: function() {
alert(dataString)
return false;
}
应该是:
$.ajax({
type: "POST",
url: "apotelesma.php",
data: dataString,
success: function(data) {
alert(data)
return false;
}
data
中的success: function(data){}
就是你在php文件中回显的内容。
答案 5 :(得分:0)
您没有发送变量。更改AJAX以在num1
区域中包含变量num2
和data
:
$("#sum").click(function() {
var num1 = $("#num1").val();
var num2 = $("#num2").val();
$.ajax({
type: "POST",
url: "apotelesma.php",
data: {
num1: num1,
num2: num2
},
success: function(data) {
alert(data);
return false;
}
});
return false;
});
将PHP更改为以下内容:
$num1 = isset($_POST['num1']) ? $_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ? $_POST['num2'] : 0;
echo $num1 + $num2;