Javascript Ajax响应值始终为1?
我有一个html页面中的java脚本,它将变量发送到一个PHP脚本,然后在最后回显一个变量。响应值始终为1,我尝试过发出警报、console.log并将其放入一个框中,但没有任何更改 我的html/JSJavascript 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
<!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”,而不是变量值varsdiv1
和div2
)。
元素没有内容,因此innerHTML
将返回空字符串<代码>新日期(“div1”)毫无意义。因此,您总是得到相同响应的原因是您发送了错误的输入。
元素没有内容,因此innerHTML
将返回一个空字符串<代码>新日期(“div1”)毫无意义。因此,您总是得到相同的响应的原因是因为您发送了错误的输入。我将此答案的代码更改为,但无论如何,我仍然会得到一个返回值。我将此答案的代码更改为,但无论如何,我仍然会得到一个返回值。