Передача переменных в представление - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть список опций выбора и объект 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),
    )

1 Ответ

0 голосов
/ 08 сентября 2011

Ваше представление возвращает обработанный шаблон, но ваш Ajax ничего не делает с ним.

Если вы просто хотите, чтобы кнопка перенесла пользователя на новую страницу, вам вообще не следует использовать Ajax. Просто поместите значения в форму и сделайте кнопку обычной input type="submit".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...