2009-03-26 2 views
0

Я совершенно новый для JQuery - подумал, что было бы хорошо подобрать его для проекта, в котором я участвую. В основном я хочу создать форму рода, и каждый раз, когда на вопрос ответит форма, в зависимости от ответа появляется новый вопрос. У меня есть немного псевдо-кода, написанного для него, и, вероятно, можно написать его на PHP. Проблема в текущей версии состоит из нескольких страниц, содержащих каждую отдельную возможность.Вложенные IF с помощью jQuery

Мне нужен эффективный и легко ремонтируемый и модифицируемый способ его создания.

Чтобы дать немного больше фона, вот как это работает ..

Каждый вопрос не имеет да/нет ответа. В зависимости от ответа задается другой вопрос и т. Д., Прежде чем прийти к определенному выводу. Существует около 25 различных возможных результатов.

Кто-нибудь знает какие-либо ссылки, которые я мог бы использовать, чтобы сделать что-то подобное, или если в настоящее время что-то похожее?

Спасибо, Шон

ответ

0

Если у вас нет много разных вопросов, вы можете просто загрузить их в массив JS и взять его оттуда; нет необходимости использовать AJAX.

Если у вас есть много вопросов, и вы загрузите сотни KB в браузер, вы можете разработать версию AJAX.

Однако, я считаю, что до сих пор не понимаю вопроса ... с чем вы столкнулись? JQuery? Алгоритм? AJAX? Как создать разметку для достижения этого?

Возможно, размещение вашего текущего кода может привести нас к тому, чтобы помочь вам лучше.

0

jquery forms plugin, вероятно, является хорошим способом начать думать о том, как подойти к этому. Я думаю, вы обнаружите, что это почти тривиально.

0

один способ рассмотреть форматирование данных является XML-дерево, с каждым возможным ответом, перечисленные в качестве потомка «родительского» вопрос:

<question text="Is blue your favorite color" > 
    <question answered="yes" text="Is 98.6 degrees your normal internal temperature"/> 
    <question answered="no" text="Is green your favorite color"> 
    <question answered="yes" text="Do you have green eyes" /> 
    <question answered="no" text="Is your favorite color white"/> 
    </question> 
<question> 
1

попробовать это .. не тестировалось

<form> 
<label id="id1">Do you like turkey?</label> 
<input type="radio" name="group1" value="Y" onclick="ShowYes(1);">Yes 
<input type="radio" name="group1" value="N" onclick="ShowNo(1);" >No 
</ br> 
<div id="Set2"> 
    <label id="id2">Do you like mirrors?</label> 
    <input type="radio" name="group2" value="Y" onclick="ShowYes(2);">Yes 
    <input type="radio" name="group2" value="N" onclick="ShowNo(2);" >No 
</div> 
<div id="Set3"> 
    <label id="id3">Do you like winter?</label> 
    <input type="radio" name="group3" value="Y" onclick="ShowYes(3);">Yes 
    <input type="radio" name="group3" value="N" onclick="ShowNo(3);" >No 
</div> 
<div id="Set4"> 
    <label id="id4">Do you like dogs?</label> 
    <input type="radio" name="group4" value="Y" onclick="ShowYes(4);">Yes 
    <input type="radio" name="group4" value="N" onclick="ShowNo(4);" >No 
</div> 
<div id="Set5"> 
    <label id="id4">Do you like winter?</label> 
    <input type="radio" name="group5" value="Y" onclick="ShowYes(5);">Yes 
    <input type="radio" name="group5" value="N" onclick="ShowNo(5);" >No 
</div> 

function ShowYes(questionSet){ 
switch(questionSet) 
{ 
    case 1: 
     $(Set2).show(); 
     break; 
    case 2: 
     $(Set3).show(); 
     break; 
    default: 
     alert(); 
}} 

function ShowNo(questionSet){ 
switch(questionSet) 
{ 
    case 1: 
     $(Set4).show(); 
     break; 
    case 2: 
     $(Set5).show(); 
     break; 
    default: 
     alert(); 
}} 

затем в верхней части вашего HTML добавить document.ready ... Я уверен, скрывая все дивы ча n быть сделано в .each() также.

$(document).ready(function(){ 
$('#Set2').hide(); 
$('#Set3').hide(); 
$('#Set4').hide(); 
$('#Set5').hide();} 
Смежные вопросы