[AJAX] Опрос с динамически формируемыми вариантами ответов

Статус
В этой теме нельзя размещать новые ответы.

dig555

Постоялец
Регистрация
22 Июн 2007
Сообщения
365
Реакции
160
Все, я думаю, знают этот старый прикол с большой красной кнопкой. Задача - организовать что-то подобное средствами AJAX + PHP. Главное: на каждой странице "опроса" может быть не одна кнопка с надписью, а выбор из нескольких вариантов ответа (возможно с картинкой), от выбора которых будет зависеть следующий вопрос или фраза "искусственного интеллекта" :). Естественно страница перезагружаться не должна.
Перерыл пол гугла, ничего толкового не нашёл. По сути должны же быть примеры к каким-то AJAX/JQuery либам для создания многоуровневых опросов.
Очень прошу подкинуть ссылки на исходники решения подобных задач. Желательно, чтобы это был пример в составе какой-то библиотеки.
 
Вообще задача не такая уж и сложная-
берём какой-нить ajax опрос который формирует опрос на внешних данных xml или json. Эти данные надо сделать чтобы формировал php, основываясь на данных которые послал юзер. А в самом ajax на место обработки отсылки запроса- принять данные и занаво сформировать опрос.
Но скорее всего тебе подойдёт не опрос а тест. Прогугли на тему теста
 
Спасибо, конечно, но и по тестам всё равно ничего толкового не нашёл. :( Мне бы ссылочку :ah:
 
например сделать с jquery, который загружает новую форму после каждого выбора ответа (нажатием на radio кнопку).

HTML:
//функция загрузки файла через ajax, содержимое показать в элементе id="form"
function load_data(form_id){
    $.ajax({
        type: "POST",
        url: "data.php",
        data: $(form_id).serialize(),
        cache: false,
        success: function(html){
            $(form_id).html(html);
            $("#form input[type='radio']").click(function(){
                load_data("#form");
            });
        }
    });
}

//загрузка данных
$(document).ready(function(){
    load_data("#form");
});
Загружается php файл в котором идёт проверка вопросов и ответов и отправляется содержимое для формы.
 

Вложения

  • ajax_voprosy.zip
    34,6 KB · Просмотры: 17
Ай, молодец :ay: То, что нужно - респект тебе.


Остался только один вопрос.
Ответ передаётся через выбор radio button'a:
<label><input name="answer" type="radio" value="1" /> Да</label>
Мне же бы хотелось, чтобы иногда всесто радиокнопок, я мог вставлять картинки, при нажатии на которые происходил выбор варианта ответа.
Понятно, что конструкция <input name="answer" type="image" value="1" /> не прокатывает.

Вижу два варианта:
1). С помощью css абсолютно позицинировать картинку с кнопкой под радиокнопкой соответсвующего размера. Проблема в том, что радиокнопка отчётливо видна на нарисованной кнопке. При шаманстве с display и visibility на нажатия не реагирует.
2). Использовать для radiobutton в качестве background-image нарисованную кнопку. Чё-то тоже не фурычет.

Подскажите, пожалуйста.
 
Ответ на последний вопрос всё ещё требуется.
 
чтоб не кодить для каждого элемента сделать например так, универсально для любого елемента по которому кликают, отслеживать клики на элементы с классом class="answer", брать значение id элемента как ответ и записывать в спрятанное поле answer и дальше отсылать форму.
форма со спрятанным полем
HTML:
        Вопрос №0, твой ответ:<br />
        <img src="http://www.nulled.cc/image.php?u=23755&dateline=1210515156" id="1" class="answer" />
        <br /><br />
        <img src="http://www.nulled.cc/image.php?u=23755&dateline=1210515156" id="2" class="answer" />
        <br /><br />
        <img src="http://www.nulled.cc/image.php?u=23755&dateline=1210515156" id="3" class="answer" />
        <input name="answer" type="hidden" value="" />
jquery отслеживает клики
HTML:
            $(form_id+" .answer").click(function(){
                //значение id нажатого элемента записывается в спрятанное поле answer
                $(form_id+" input[name=answer]").attr("value", $(this).attr("id"));
                //отправка данных
                load_data(form_id);
            });
так что теперь можно кликать любой хтмл тег: картинка, чекбокс и т. д. Главное чтоб был указан класс и ид.
 

Вложения

  • ajax_voprosy2.zip
    34,8 KB · Просмотры: 13
ajax_voprosy и 2 все в utf-8 переключал в другие всё равно выводит выбран РѕС‚РІРµС только что получил почту от moemesto с такими же что делать
Залил на сервер всё ок а на локалки проблемы. В Вин ли или Вирусе или где ещё? "кис9 лицензия"
polyetilen Спасибо! очень доходчиво
 
если денвер то у него в настройках апача по умолчанию установлена кодировка windows-1251 зачем-то, так апач всё в этой кодировке отправляет если другая не указана.

можно в настройках
Z:\usr\local\apache\conf\httpd.conf
закоментировать с символом # строку
#AddDefaultCharset windows-1251

ещё можно там где файлы вопросов добавить файл .htaccess с содержимым:
AddDefaultCharset utf-8

или просто добавить в начало файла data.php:

PHP:
//выкл. кэширование
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
//кодировка
header('Content-Type: text/plain; charset=utf-8');
header('Accept-Ranges: bytes');
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху