我有一个选择选项列表和一个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),
)
答案 0 :(得分:0)
您的视图会返回一个呈现的模板,但您的Ajax不会对其执行任何操作。
如果您只是希望按钮将用户带到新页面,则根本不应使用Ajax。只需将值放入表单中,然后使按钮正常input type="submit"
即可。