2011-03-20 25 views
1

我想使用JavaScript變量導入python Block。使用javascript變量導入Python Block

<script> 
$(document).ready(function() { 
    $("#WO_cpp_id").change(function() { 
    id = this.selectedIndex; 
    ajax('{{=URL(r=request,f='get_CIs',vars={'CPP_Id':'#here I want to use id variable')}}', ['WO_cpp_id'], 'WO_ci_id'); 
}) 
.change(); }); </script> 

由於提前

回答

0

這是行不通的。 Python在客戶端上呈現頁面之前在服務器上運行;在頁面呈現後,Javascript在瀏覽器中運行。當Python代碼運行時,甚至沒有設置id變量。

相反,您應該讓您的javascript代碼添加要設置爲現有查詢字符串的額外數據(或使用jQuery的ajax選項的data屬性)。

3

您的python代碼正在服務器上運行。您的JavaScript代碼(如引用的)正在客戶端上運行。所以你不能在你的Python代碼中直接使用JavaScript變量。你所做的是發送你想從客戶端以任何方式發送到服務器的數據。

其中的一種方法是「阿賈克斯」。此客戶端代碼將變量foo的內容發送到服務器上張貼「fooParameter」參數:

jQuery docsthe Wikipedia article on ajax
var foo = "This is some information"; 
$.ajax({ 
    url: "myscript.py", 
    method: "POST", 
    data: {fooParameter: foo}, 
    success: function(responseData) { 
     // Successful POST; do something with the response if you want 
    }, 
    error: function(jxhr, statusText, err) { 
     // Error, handle it 
    } 
}); 

更多。