2012-11-13 52 views
0
<script> 

//Handle the callback on success 

function stateChange(){ 

    if (xmlHttp.readyState==4 && xmlHttp.status==200) { 

    //request is successful. So retrieve the values in the response 
    var display_language = xmlHttp.responseText.split(';'); 
    alert("response: " + display_language); 

    var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang == display_language %}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}'; 

    $('#xxx').html(newHtml); 
    } 
} 
</script> 

如果我使用上面的代碼中,display_language值爲null。但是alert可以打印display_language的值。只是display_language不能被傳入newHtml。的Javascript包含Django的標籤

如果改爲

var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang =='; 

newHtml += display_language +'%}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}'; 

的錯誤是,「」無效的塊標籤:「ENDIF」,預計「空」或「ENDFOR」

+0

這是什麼問題? – mkoryak

回答

0

你試圖混合Javascript和Django模板太多了。請記住,所有的Django都是先運行的,然後所有的javascript都會運行。因此,因爲display_language值是使用Javascript創建的,所以不能在您的Django模板中使用它。我建議只將所有數據傳入Javascript,然後用純javascript構建newHtml值。