2013-06-04 31 views
0

我想做一個AJAX查詢,然後在點擊「Get」按鈕時顯示一個jqPlot圖形。jQuery:用按鈕顯示一個jqPlot圖表

<script> 
$("button").click(function(){ 
    var test = null; 
    $.get("requete_graph.php", { 
     id: param1, 
     datemin: param2, 
     datemax: param3 
    }, function(data,status){ 
     test = data; 
    }, "json"); 
    return test; 
}); 

// Graph part 
var blablabla = [[3,7,9,1,4,6,8,2,5]]; 
$(document).ready(function(){ 
    var plot1 = $.jqplot ('chartdiv', blablabla); 
}); 
</script> 

使用此代碼,當頁面完全加載時顯示圖形。


<script> 
$("button").click(function(){ 
    var test = null; 
    $.get("requete_graph.php", { 
     id: param1, 
     datemin: param2, 
     datemax: param3 
    }, function(data,status){ 
     test = data; 
    }, "json"); 
    return test; 

    // Graph part 
    var blablabla = [[3,7,9,1,4,6,8,2,5]]; 
    $(document).ready(function(){ 
     var plot1 = $.jqplot ('chartdiv', blablabla); 
    }); 
}); 
</script> 

這樣,圖形顯示從來沒有(甚至當我點擊按鈕)。


我想用$.jqplot$.get結果(我只是做了blablabla值來測試的行爲)。我想要的是做一個AJAX請求,然後顯示一個圖表,當我點擊一個「獲取」按鈕。
我只是不確定的jQuery語法。

回答

0

只需將已經準備好的圖形放入隱形div並使其在按鈕單擊時可見。

或者你也可以做到以下幾點:

var blablabla = [[3,7,9,1,4,6,8,2,5]]; 
$(document).ready(function(){ 
    var plot1 = $.jqplot ('chartdiv', blablabla); 

    $("button").click(function(){ 
     var test = null; 
     $.get("requete_graph.php", { 
      id: param1, 
      datemin: param2, 
      datemax: param3 
     }, function(data,status){ 
      test = data; 
     }, "json"); 
     return test; 
    }); 

}); 

在這種情況下,當頁面完全加載,你會綁定一個click事件。

+0

那麼,在未來,我想使用'測試'值。我只是做了一個'blablabla'的值來測試圖。 我知道我需要做一些更多的工作來「轉換」JSON字符串,因爲jqPlot無法像這樣解釋它。 因此,我不想「在頁面完全加載時綁定點擊事件」,而且我也不想「已經準備好」它,因爲可以在頁面上更改一些輸入值。 – pihug12

+0

好吧,如果你想按鈕點擊的反應,你將不得不綁定一個點擊事件,不是嗎?當你把它放在'$(document).ready()'的前面時,它幾乎沒有任何啓動,因爲按鈕根本就沒有。 –

+0

我不確定我是否理解...我想用'$ .jqplot'和'$ .get'的結果。我不在乎圖表是否在頁面加載時不顯示。我想要做的就是創建一個AJAX請求,然後在點擊「Get」按鈕時顯示一個圖形。 – pihug12