0

这是我的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 脚本来显示结果是否正确。

4

6 回答 6

2

isset检查是否设置了一个值并返回一个布尔值,因此$num1and$num2将是 true 或 false。因此,您没有将实际值相加。

于 2013-07-26T18:25:47.773 回答
1

问题是您正在设置$num1$num2布尔值..

尝试这个

$num1 = isset($_POST['num1']) ?  $_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ?  $_POST['num2'] : 0;
于 2013-07-26T18:25:31.737 回答
1

isset()返回trueor false,并且很难用trueor做任何添加false(讽刺)。

您需要将其更改为:

$num1 = isset($_POST['num1']) ?  $_POST['num1'] : 0;
$num2 = isset($_POST['num2']) ?  $_POST['num2'] : 0;

return $num1 + $num2;

我的问题:你有什么理由对 ajax 做加法吗?为什么不在没有 ajax 请求的 javascript 中呢?

于 2013-07-26T18:27:30.353 回答
0

您没有发送变量。更改 AJAX 以包含变量和num1区域:num2data

$("#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;
于 2013-07-26T18:40:48.580 回答
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;
}

datainsuccess: function(data){}是您在 php 文件中回显的内容。

于 2013-07-26T18:29:03.067 回答
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 调用时,您的页面不会像使用普通表单那样刷新,因此您不想使用包含。

于 2013-07-26T18:26:52.697 回答