2016-03-14 100 views
0

我在一個html頁面中發送了一個java腳本,該腳本發送給一個PHP腳本,然後在最後迴響一個var。響應值總是1,我試過警告,console.log並把它放在一個盒子裏,沒有任何改變。Ajax響應值始終爲1?

我的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> 

我的PHP:

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

echo $workingDays; 

?> 

更新:我改變了代碼,以便它漸漸從輸入的,而不是內部的html值,但它仍然是返回1無論。

+0

''元素沒有內容,所以'innerHTML'將返回一個空字符串。 '新日期(「div1」)'沒有任何意義。所以,你總是得到相同的迴應的原因是因爲你發送不正確的輸入。 –

回答

2

此:

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); 

也就是說,div1div2不應該有他們周圍引號(你逝去的常數值 「DIV1」 和 「DIV2」,而不是通過變量值變量值div1div2)。

+0

我改變了我的代碼來得到這個答案,但無論如何我仍然得到一個回報。 – Programmerdave