2016-03-03 89 views
0

我想用html日期選擇器更新google gnatt chart並刷新頁面以顯示新選擇的數據。但是,我一直無法讓他們工作,這是一個很大的失望。我最近來自Stackoverflow的另一個鏈接,它的影響力出現在我的代碼中,但它沒有幫助。我的圖表工作得很好,但我希望能夠按日期進行排序以縮小數據範圍,並最終使用現在不存在的相同基本方法進行更多篩選。目前,我可以使用GET將日期發佈到主頁面url,並使用javascript挑選出來,但我無法通過ajax將它們傳遞到php頁面getTrackerdata.php。如果我按照以下方式運行該頁面,則可以像過濾一樣正常顯示圖表。谷歌圖表更新從表單提交mysql查詢

與控制檯日誌我看到日期是從URL中挑選它打印

startdate: 2016-02-05 enddate: 2016-03-25 

如果我只是網址運行PHP頁面如下

getTrackerdata.php?startdate=2016-02-13&enddate=2016-03-25 

它返回適當的數據並在正確的日期內過濾

我的網站上的選擇

腳本:

$("#drawChart").click(function(e) { 
    e.preventDefault(); 
    drawChart(); 
}); 

function GetUrlValue(VarSearch){ 
    var SearchString = window.location.search.substring(1); 
    var VariableArray = SearchString.split('&'); 
    for(var i = 0; i < VariableArray.length; i++){ 
     var KeyValuePair = VariableArray[i].split('='); 
     if(KeyValuePair[0] == VarSearch){ 
      return KeyValuePair[1]; 
     } 
    } 
} 

function testAjax() { 
    var startdate = GetUrlValue('startdate'); 
    var enddate = GetUrlValue('enddate'); 

    return $.ajax({ 
      url: "getTrackerdata.php", 
      dataType: "text", 
      data: ({"startdate": startdate, "enddate": enddate}), 
      async: false 
      }).responseText; 
} 

    function drawChart() { 



    var jsonData = testAjax(); 
    var data = new google.visualization.DataTable(JSON.parse(jsonData)); 

HTML:

<div id="hed"> 
    <h1><strong>CARF PROJECT TRACKER </strong></h1> 
</div> 
<div id="picker"> 
    <form action="ProjectTracker.html" method="GET"> 
    From: <input type="date" class="hasDatepicker" name="startdate" id="datepicker"> To: <input type="date" name="enddate" class="hasDatepicker" id="datepicker2"> <input type="submit" id="drawChart" > 
    </form> 
</div> 
    <div id="chart_div"></div> 
    <a href="ProjectTracker/home.php"> Link to Edit Chart</a> 
<div id="table_div"></div> 

PHP:

$From = $_POST['startdate']; 
$Too = $_POST['enddate']; 
if($From === NULL){ 
$result = ("SELECT `Project`, `Description`, `Notes`, `StartYear`, `EndYear`, `Duration` , `PercentComplete`, `Dependancy` FROM `Main`"); 
}else{ 
    $result = ("SELECT `Project`, `Description`, `Notes`, `StartYear`, `EndYear`, `Duration` , `PercentComplete`, `Dependancy` FROM `Main` WHERE `StartYear` BETWEEN '$From' and '$Too'"); 
} 

上午我在正確的方向?有沒有比使用GET更麻煩的方法?

謝謝

編輯:改變措辭 編輯2:改到最近的一個例子。

回答

0

我錯過了以下內容。

function testAjax() { 
var startdate = GetUrlValue('startdate'); 
var enddate = GetUrlValue('enddate'); 

return $.ajax({ 
     url: "getTrackerdata.php", 
     type: "POST", // This is needed to send data 
     dataType: "text", 
     data: ({'startdate': startdate, 'enddate': enddate}), 
     async: false 
     }).responseText; 

}