2011-10-17 52 views
1

我試圖使用AJAX與web2py的語言,但我有一個問題 我的代碼是:是否可以在JavaScript文件(.js)中使用web2py語言?

的JavaScript

$(document).ready(function(){ 
    $(".className").click(function(){ 
     jQuery.ajax({ 
     type:'POST', 
     url:'getName', 
     data:{ 
     itemName:'a' 
     }, 
     timeout: 20000, 
     success: function(msg) { 
     alert(msg); 
     }, 
     error: function(objAJAXRequest, strError){ 
     alert("Error:" + strError); 
     } 
    }); 
}); 

default.py

def getName(): 
    itemName=request.vars.itemName 
    return "Name: " + itemName 

事情是我想使用數據庫中的數據,但可以使用

{{for item in tableName:}} 
var name={{=item.name}} 

是什麼?

我不知道如何在JavaScript中從數據庫提取數據。 你能幫我一下嗎? 乾杯

+0

目前尚不清楚你想要做什麼。 getName應該返回一個字符串或Javascript代碼?你想把「{{for item in tableName}}」放在哪裏?什麼是'item.name'? – Anthony 2011-10-17 15:26:48

+0

我想返回一個字符串的名稱變量。 ,並且我希望在itemName:位於{}之前將{{for ....}}放入javascript中。最後,item.name用於名稱字段中的所有名稱。 可能嗎?如果不是,有沒有其他選擇? – 2011-10-17 15:37:11

+0

對不起,還是不太明白。也許在[郵件列表](https://groups.google.com/forum/?fromgroups&pli=1#!forum/web2py)上打開它並顯示更多代碼。您可以使用web2py視圖來生成JS,但必須在服務器端完成 - 您不能將web2py模板代碼與客戶端運行的JS混合(瀏覽器不知道該如何處理它)。 – Anthony 2011-10-17 16:14:13

回答

1

簡短的回答是,你不能直接從JavaScript中使用web2py在數據庫中提取數據。你必須使用web2py查詢數據庫,然後使用web2py將你的查詢數據發送給javascript(或者更準確地說,因爲你使用的是Ajax,使用jquery/javascript從web2py下拉查詢數據)。確保你確實需要在客戶端(javascript)端執行邏輯,因爲最簡單的事情就是在web2py控制器中執行python中的所有邏輯。

但是,如果您出於某種原因需要在客戶端對您的數據執行邏輯,那麼您正處於正確的軌道上。最簡單的做法是從web2py控制器中的數據庫獲取所需的記錄,然後將記錄打包爲web2py控制器中的json對象(「import simplejson」),或者您可以使用標準庫最新版本的python),然後返回該json對象,使其可供您的js使用上面包含的ajax請求獲取。只有在這一點上,你應該使用javascript循環訪問json對象以獲取所需的數據。這就是說,如果你只是想從數據庫的單個記錄中獲取一個字段,最簡單的事情就是正確地查詢數據庫以獲取該記錄,並將其返回到web2py控制器中爲你的ajax腳本得到。

相關問題