我是JQuery的新手 - 认为为我正在参与的项目选择它可能会很好。基本上我想创建一种形式,每次回答表单上的问题时,都会根据答案出现一个新问题。我为它编写了一些伪代码,可能用PHP编写。问题是当前版本有多个页面包含每一种可能性。
我需要一种高效且易于维护和可修改的方法来创建它。
为了给出更多背景知识,以下是它的工作原理..
每个问题都有答案。根据答案,在得出某个结论之前会询问另一个问题,依此类推。大约有25种不同的可能结果。
有没有人知道我可以用来做这样的事情的任何引用,或者当前有什么类似的东西?
谢谢, 肖恩
答案 0 :(得分: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 ...我确定隐藏所有的div都可以在.each()中完成..
$(document).ready(function(){
$('#Set2').hide();
$('#Set3').hide();
$('#Set4').hide();
$('#Set5').hide();}
答案 1 :(得分:0)
如果您没有很多不同的问题,可以将它们加载到JS数组中并从那里获取;无需使用AJAX。
另一方面,如果您有很多问题并且会向浏览器加载数百KB,那么您可能需要开发一个AJAX版本。
然而,我相信我仍然不明白这个问题......你究竟遇到了什么问题? jQuery的?算法? AJAX?如何创建标记来实现这一目标?
也许发布您当前的代码可能会让我们更好地帮助您。
答案 2 :(得分:0)
jquery forms plugin可能是开始思考如何解决这个问题的好方法。我认为你会发现实施它几乎是微不足道的。
答案 3 :(得分: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>