0
我有一個選擇選項列表和一個jstree對象,我想將用戶選擇傳遞給一個django視圖來處理它並獲得響應。我肯定做錯了事,但我不知道如何解決。我可以在調度程序視圖中獲取值,但該模板從不加載,它保留在前一個視圖(生成以下模板的人員)中。將變量傳遞給視圖
<html>
<body>
<select id="opt" name="numbers">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input id="goButton" value="Go!" class="btn small info" />
<div id="demo2" class="demo">
<ul>
{% for car_type, cs in cars.items %}
<li>
<a>{{ car_type }}</a>
<ul>
{% for c in cs %}
<li><a id="{{c.0}}">{{c.1}}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</div>
<script>
$(function() {
$("#demo2").jstree({
.........
function submitMe(){
var checked_ids = new Array();
var car_amount = $("select option:selected").val();
$("#demo2").jstree("get_checked",null,true).each
(function (index,value) {
if (value.children[2].id) {
checked_ids.push(value.children[2].id);
}
});
var car_ids = checked_ids.join(" ");
$.ajax({
type: 'POST',
url: "{% url scheduler %}",
data: {'car_ids': car_ids, 'car': car_amount},
dataType: "json"
});
};
$("#goButton").click(function() {
submitMe();
});
});
</script>
</body>
</html>
views.py(調度):
def scheduler(request):
if request.is_ajax():
c_ids = request.POST['car_ids'].split(" ")
cars = request.POST['car']
.......
context = {
'cars' : cars,
}
return render_to_response(
'scheduler.html',
context,
context_instance = RequestContext(request),
)
感謝丹尼爾,正如你在代碼中看到的那樣,我必須在發送它們之前先用這些值做一些事情。我正在考慮使用jquery .submit(),但我不知道如何將它重定向到帶有附加數據的新視圖。 – Rod0n
@rodringo,提交是一種表單方法。你會給你的表單一個動作,當你打電話提交時,它會使用你指定的方法提交給動作url。 Ex'