2017-01-22 78 views
0

我想通過ajax發送一個ID號給我weppy的後端 我已經嘗試了儘可能多的事情,因爲我能想到但我確定我只是不懂如何去做。weppy我怎麼能發送數據到JavaScript從JavaScript使用AJAX()

我從上點擊我的HTML頁面收集的ID,並想將其發送到服務器腳本 現在我的AJAX看起來像

$(.testclick).click(function(e){ 
    var idnum = e.target.id; 
    ajax("{{=url('post')}}", [], ':eval'); 
}); 

我已經試過,包括在多個地方,希望在IDNUM變量與沒有這樣的運氣搞清楚

後函數看起來像

@app.route() 
def post(idnum): 
    idnum = idnum 
    print(idnum) 
    return 

現在我只是想使其工作它實際上並沒有做任何事情,但打印到控制檯atm

在此先感謝!

回答

0

爲了從JavaScript運行python腳本,您可以使用CGI。下面是javascript代碼:

$(.testclick).click(function(e){ 
var reqobj; 
reqobj = {idnum: e.target.id} 

// AJAX 
var response = $.ajax({ 
type: "POST", 
url: "/script/sample.py", 
data: reqobj 

}); 
} 

Python腳本(sample.py):

import cgi, cgitb 
data= cgi.FieldStorage() 

# Get data from fields 
input = data["idnum"] 

print(input) 

爲了得到這兩個腳本的工作,你需要有一個web服務器,並配置它來執行python腳本。 這裏[鏈接] https://www.linux.com/blog/configuring-apache2-run-python-scripts

1

由於從weppy docs

AJAX輔助異步調用的URL,名稱等於列表中的名稱,然後存儲的一個通行證的外地輸入的值標記的innerHTML中的id與目標相同的響應。 第三個參數也可以是:eval字符串,它可以通過JavaScript對服務器返回的字符串進行評估。

如果你想使用該助手使用任意值一個Ajax請求,你需要把它放在請求的URL,但在這之前,你需要接受你的路線上url variable

@app.route('/click/<str:element_id>') 
def click(element_id): 
    return 'alert("clicked on ' + element_id + '");' 

然後在HTML端:

$(".testclick").click(function(e){ 
    ajax("{{=url('click')}}/" + e.target.id, [], ':eval'); 
}); 

注意,由weppy提供的ajax助手用來將用於渲染的內容您網頁的組件內部或產生javascri pt代碼進行評估。

如果您需要發送並獲取任意數據到您的後端,請考慮使用jQuery ajax方法和json數據。

相關問題