Вложенные IF с помощью jQuery - PullRequest
0 голосов
/ 26 марта 2009

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

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

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

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

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

Спасибо, Sean

Ответы [ 4 ]

1 голос
/ 07 октября 2010

попробуйте это .. не проверено

<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 добавить документ. Уже ... Я уверен, что скрыть все div можно также в .each () ..

$(document).ready(function(){
 $('#Set2').hide();
 $('#Set3').hide();
 $('#Set4').hide();
 $('#Set5').hide();}
0 голосов
/ 26 марта 2009

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

0 голосов
/ 12 июля 2009

Одним из способов форматирования ваших данных является дерево 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>
0 голосов
/ 26 марта 2009

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

Если, с другой стороны, у вас много вопросов, и при этом в браузер загружаются сотни КБ, вы можете разработать версию AJAX.

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

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

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