Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax响应值始终为1?_Javascript_Php_Ajax - Fatal编程技术网

Javascript Ajax响应值始终为1?

Javascript Ajax响应值始终为1?,javascript,php,ajax,Javascript,Php,Ajax,我有一个html页面中的java脚本,它将变量发送到一个PHP脚本,然后在最后回显一个变量。响应值始终为1,我尝试过发出警报、console.log并将其放入一个框中,但没有任何更改 我的html/JS <!DOCTYPE html> <html> <head> <script language="javascript" type="text/javascript" src="datetimepicker.js"></script

我有一个html页面中的java脚本,它将变量发送到一个PHP脚本,然后在最后回显一个变量。响应值始终为1,我尝试过发出警报、console.log并将其放入一个框中,但没有任何更改

我的html/JS

<!DOCTYPE html>
<html>
 <head>
     <script language="javascript" type="text/javascript" src="datetimepicker.js"></script>
     <script language="javascript" type="text/javascript" src="datetimepicker2.js"></script>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
     <link rel="stylesheet" type="text/css" href="css.css">

 </head>
 <body>
     <input id="demo1" type="text" size="25"><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>
     <input id="demo2" type="text" size="25"><a href="javascript:NewCal2('demo2','ddmmyyyy')"><img src="cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>
     <button onclick="submit()">Click me</button>
     <div id=box></div>
     <script>
      function submit(){
       var div1 = document.getElementById("demo1").value;
       var div2 = document.getElementById("demo2").value;
       var ftest = new Date(div1);
       var ltest = new Date(div2);
          var xhttp = new XMLHttpRequest();
          if(window.XMLHttpRequest){
            xhttp = new XMLHttpRequest();
          }
          else{
               xhttp = new ActiveXObject("Microsoft.XMLHTTP");
          }

       xhttp.open("GET","calc.php?w1="+ftest+"&w2="+ltest,true);
       xhttp.onreadystatechange = function() {
        if(xhttp.readyState==4)   
        {   
            alert(xhttp.responseText); 
        }   
       };
       xhttp.send(null);
      }
     </script>
 </body>   
</html>

点击我
函数提交(){
var div1=document.getElementById(“demo1”).value;
var div2=document.getElementById(“demo2”).value;
var ftest=新日期(第1部分);
var ltest=新日期(第2部分);
var xhttp=newXMLHttpRequest();
if(window.XMLHttpRequest){
xhttp=newXMLHttpRequest();
}
否则{
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.open(“GET”、“calc.php?w1=“+ftest+””和w2=“+ltest,true”);
xhttp.onreadystatechange=函数(){
if(xhttp.readyState==4)
{   
警报(xhttp.responseText);
}   
};
xhttp.send(空);
}
我的PHP:

<?php 
// function getWorkingDays($startDate,$endDate,$holidays) {
    $startdate = $_GET['w1'];
    $endDate = $_GET['w2'];
{crapton of math}

echo $workingDays;

?>

更新:我更改了代码,使其从输入中获取值,而不是从内部html获取值,但无论发生什么情况,它仍然返回1。

这:

var div1 = document.getElementById("demo1").innerHTML;
var div2 = document.getElementById("demo2").innerHTML;
var ftest = new Date("div1");
var ltest = new Date("div2");
应该是:

// Input fields have a value property
var div1 = document.getElementById("demo1").value;
var div2 = document.getElementById("demo2").value;
// Pass that value to date, not the string "div1/2"
var ftest = new Date(div1);
var ltest = new Date(div2);
也就是说,
div1
div2
周围不应该有引号(您传递的是常量值“div1”和“div2”,而不是变量值
div1
div2
)。

这是:

var div1 = document.getElementById("demo1").innerHTML;
var div2 = document.getElementById("demo2").innerHTML;
var ftest = new Date("div1");
var ltest = new Date("div2");
应该是:

// Input fields have a value property
var div1 = document.getElementById("demo1").value;
var div2 = document.getElementById("demo2").value;
// Pass that value to date, not the string "div1/2"
var ftest = new Date(div1);
var ltest = new Date(div2);

也就是说,
div1
div2
周围不应该有引号(您传递的是常量值“div1”和“div2”,而不是变量值vars
div1
div2
)。

元素没有内容,因此
innerHTML
将返回空字符串<代码>新日期(“div1”)毫无意义。因此,您总是得到相同响应的原因是您发送了错误的输入。
元素没有内容,因此
innerHTML
将返回一个空字符串<代码>新日期(“div1”)毫无意义。因此,您总是得到相同的响应的原因是因为您发送了错误的输入。我将此答案的代码更改为,但无论如何,我仍然会得到一个返回值。我将此答案的代码更改为,但无论如何,我仍然会得到一个返回值。