我目前有一個問題,獲取javascript和python在web2py中進行通信。web2py:如何將一個python數組複製到一個javascript
控制器:
def testDB():
a=[]
a.append('a')
a.append('b')
a.append('c')
return dict(m=a)
(最終,這將被用DB行的陣列替換) 目前我試圖m中的值分配給在JavaScript的陣列。我試過這幾種方法:
var t="{{=m}}";
返回約43個無意義的字符。然後我想:
var t= new Array(); var i=0;"{{q=0}}"
"{{i=len(message)}}"
i="{{=i}}";
for(q=0;q<i;q++,"{{q=q+1}}"){
t[q]="{{m[q]}}";
}
哪些失敗了,因爲蟒蛇q變量將每一次循環一樣,這是我的問題的心臟復位。 我使用的流行也試過:
for(q=0;q<i;q++,"{{q=q+1}}"){
alert("{{m.pop()}}");
}
但陣列保持在循環的開始再次重置,所以它一直顯示相同的變量。 有沒有更簡單的方法來複制數組,或者停止python變量重置,甚至是簡單地將javascript q變量插入「{{m [q]}}」來代替?
從我發現,問題來自於python作爲服務器端,所以你不能分配JavaScript值到它的變量,但我不知道它與循環部分有什麼關係(如果我在循環外做同樣的事,值不會重置)。常見的解決方案似乎是使用ajax或json,但如果可能的話,我想避免這種情況。由於
我怎麼會用它來把m的值轉換爲JavaScript數組? – James
'json.dumps(py_list)'會給你一個JSON數組。將它傳遞給瀏覽器。 –
這不適用於web2py。對不起,認識到這是一個古老的線程。感覺我應該提及它。一直在嘗試相同的事情,你得到'而不是在視圖中的JSON字符串中的引號 –