Форум сайта python.su
Интересует вопрос, как сделать “динамическую” форму поиска? Например как вот здесь http://code.djangoproject.com/query
Отредактировано (Янв. 27, 2010 15:17:04)
Офлайн
Хаха.. сам только до конца разобрался с этим.
На первых порах я б на вашем месте воспользовался вот этим http://code.google.com/p/django-ajax-forms/
Офлайн
….
пардон, не туда глянул.
Отредактировано (Янв. 27, 2010 15:45:00)
Офлайн
посмотрел вторую ссылку, может что-то не понял, а при чем autocomplete?
Насчет первой ссылки, спасибо, но хотелось бы самому разобраться. Мне интересен сам механизм.
Офлайн
Посмотрел повнимательней и первую ссылку, не нашел то, что мне нужно
Офлайн
Почему? Не понятно. Я так понимаю вы хотите реализовать такой алгоритм
1. вводим в форму запрос
2. отправляем данные на сервер, не обновляя страницу целиком
3. обрабатываем запрос на сервере
4. возвращаем странице результаты запроса
5. обновляем эту/другую часть страницы.
Разве нет?
Офлайн
ну примерно да.
я хочу чтобы форма поиска была динамичной. т.е. выбираем первый параметр поиска, вводим критерий, выбираем второй параметр, вводим.
параметры должны выбираться в компоненте ComboBox (точно не знаю как называется), и только после этого добавляться на форму.
По ссылке, которую я приводил в первом посте, форма filters. Вот такую я хочу.
Офлайн
ааа, я понял что вы хотите. Динамически добавлять поля в форму.
Но в этом нет ничего сложного. с помощью jQuery напишите функцию добавления нового input-поля.
Сейчас не помогу, если завтра не помогут, я ссылку дам.. в документации к jquery есть подобные решения. пока почитайте сами.
Я напишу такую штуку завтра. Просто сейчас у меня температура и я думать не хочу :)
Офлайн
спасибо. выздаравливайте
Офлайн
Дабы не напрягать больного человека :)
Простой пример реализующий интересующую вас функциональность.
<html>
<head>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#dynamic-form").change(function() {
value = $("option:selected", this).val();
switch(value) {
case 'input':
$('#dynamic-form').append('<p><input type="text" value="input" /><a href="#">remove</a></p>');
break;
case 'checkbox':
$('#dynamic-form').append('<p><input type="checkbox" value="checkbox">checkbox <a href="#">remove</a></p>');
break;
}
$('#selector').val('none');
});
$("a").live('click', function() {
$(this).parent('p').remove();
});
$('#selector').val('none');
});
</script>
</head>
<body>
<form id='dynamic-form'>
<select id='selector'>
<option value='none'></option>
<option value='input'>add input field</option>
<option value='checkbox'>add checkbox</option>
</select>
</form>
</body>
</html>
Отредактировано (Янв. 28, 2010 01:11:29)
Офлайн