2013-10-14 33 views
0

作爲新手js和jqplot程序員,我需要指導如何將php數組數值傳遞給用於繪圖的外部javascript(使用jqplot)。我對命令以及如何調用外部js,jqplot的方式感到困惑。一個簡短的示例代碼結構將會非常有幫助。我們可能會使用以下示例代碼作爲指導。謝謝從PHP傳遞JQPlot的值

$(document).ready(function(){ 
    var plot1 = $.jqplot ('chart1',[[3,7,9,1,4,6,8,2,5]],{title: 'Plot'}); 
}); 

而不是上面的固定數據點,我想他們動態加載通過數組從下面的PHP腳本。

<?php 
    $Start_Value = $_POST['Start']; 
    $End_Value = $_POST['End']; 

    for($i=$Start_Value;$i<=$End_Value;$i+++) 
    $Plot_Val[$i] = $i + 2; 
    json_encode($Plot_Val); 
?> 

回答

1

您有幾個選擇。以下是最簡單的兩個:

  1. 只需從PHP中將數組粘貼爲JavaScript全局變量即可。
    在頁面頂部添加<script>var myData = <%= json_encode($Plot_Val); %>;</script>,然後使用myData代替數據陣列。
  2. 更好的選擇是使用Ajax從JavaScript調用PHP頁面並獲取結果,分離前端和後端代碼。
0

最好的辦法是使用AJAX,這樣的事在JS:

$.ajax({ 
type:'POST', 
url:'path/to/your.php', 
data: {start: startValue, end: endValue}, //passing params to php 
success: function (response) { 
    console.log(response) // check what kind of stuff you got back :) 
    var values = JSON.parse(response); 
    // do stuff with this data 
} 
}); 

更新:若要從表單你的價值觀,你不能把表單動作的js,而是用js獲得表單中的值。所以表單本身不應該做POST請求,而是js應該從表單中獲取值併發送POST。

事情是這樣的:

<form> 
<input type="text" id="start"> 
<input type="text" id="end"> 
<button id="submitButton">Submit Me!</button> 
</form> 

JS,我們將包裝上面的AJAX代碼放到一個函數:

function submitValues(startValue, endValue) { 
    $.ajax({ 
    type:'POST', 
    url:'path/to/your.php', 
    data: {start: startValue, end: endValue}, //passing params to php 
    success: function (response) { 
    console.log(response) // check what kind of stuff you got back :) 
    var values = JSON.parse(response); 
    // do stuff with this data 
    } 
    }); 
} 

$(document).on('click', '#submitButton', function(){ 
    var start = Number($('#start').val()); 
    var end = Number($('#end').val()); 
    //I guess you need numbers instead of text, that's why they are wrapped inside Number() 
    submitValues(start, end); 
}); 

這應該工作。 請記住,我不知道你的表單是什麼樣的,這只是一個虛擬的例子,但它應該足夠相似。你用jQuery的.val()方法獲得表單值,然後將這些值賦給ajax函數。

+0

謝謝。我遇到了一個障礙:當我使用上面的ajax .js,如下所示:

+0

我更新了我的答案,解釋瞭如何從表單獲取值並將它們賦予AJAX func – tomca32

+0

仍然無法正常工作..只是嘗試了以下代碼片段:$(document).on('click','#submitButton' ,函數(){alert(「clicked the submitButton」);});並在第一行收到「Object expected」錯誤。再次感謝。我還在腳本src中包含了包含上述代碼的外部.js文件。 –