Ajax响应文本始终为1

时间:2016-04-15 03:18:45

标签: javascript php ajax

我将两个变量发送到我的php页面进行计算,然后回显最终结果。我的回复文本总是等于一个。

Javascript:

var xhttp = new XMLHttpRequest();
 xhttp.open("GET","calc.php?w1="+ftest+"&w2="+ltest,true);
    xhttp.onreadystatechange = function() {
     if(xhttp.readyState==4)   
     {   
         var dog = xhttp.responseText;
         alert(dog); 
     }   
    };
   xhttp.send(null);
  }

php:

我在这里将end var设置为一个随机数,以测试我的数学是否导致问题。

$startdate = $_GET['w1'];
$endDate = $_GET['w2'];
$workingdays = 239;
echo $workingDays;

4 个答案:

答案 0 :(得分:2)

$workingDays直接设为10(随机数)。如果它不是10,那么你显然没有看到那个echo语句的结果。

1通常用作本地PHP函数的输出,例如isset

答案 1 :(得分:2)

你的情况是错的。

$workingdays = 239;
echo $workingDays;

在两个地方让它工作日(有大写字母D)。

答案 2 :(得分:0)

始终使用isset()来接收数据,并且您使用变量$workingdays进行声明,并使用echo $workingDays来处理这些事情。我希望这对你有用。

$startdate = '';
$endDate ='';
if(isset($_GET['w1']))
{
    $startdate = $_GET['w1'];
}
if(isset($_GET['w2']))
{
   $endDate = $_GET['w2'];
}

$workingdays = 239;
echo $workingdays;
die;

答案 3 :(得分:0)

尝试在ajax代码中添加此变量,以便在服务器端接收使用get方法发送的数据时进行测试。

var ftest = 1;
var ltest = 2;

我认为你的ajax代码在一个函数中,比如说myfunction,你有一个这样的链接<a href="#" onclick="myfunction()">link</a>

以下是代码的完整实现,假设您的文件名为index.php

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Ajax</title>
  </head>
  <body>
    <a href="#" onclick="myfunction()">link</a>
    <script type="text/javascript">
      function myfunction () {
        var ftest = 1;
        var ltest = 2;
        var xhttp = new XMLHttpRequest();
        xhttp.open("GET","calc.php?w1="+ftest+"&w2="+ltest,true);
        xhttp.onreadystatechange = function() {
          if(xhttp.readyState==4) {
            var dog = xhttp.responseText;
            alert(dog);
          }
        };
        xhttp.send(null);
      }
    </script>
  </body>
</html>

和Calc.php

<?php
  $startdate   = $_GET['w1'];
  $endDate     = $_GET['w2'];
  $workingdays = 239;
  $result = $startdate + $endDate;
  echo "$result";
?>

在此示例中,您的警报将等于 3 ,在您的代码

中相同

希望这会有所帮助