2017-02-24 61 views
0

我处于这种情况,我需要使用矩阵/表,然后根据提供的用户输入为用户分配矩阵中提及的数字(如下所示)。基于来自用户的多选择指定值 - 使用jquery

这是矩阵图片好心点击进行缩放) - the matrix table

所以,基本上..

  1. 与多个复选框和收音机的网页用户的土地按钮,每个提问几个问题,用户必须选择答案为YES或NO。
  2. 之后,用户点击计算我的评级按钮,然后这个数据来找我。
  3. 所以这里是我的问题----我该如何处理用户数据并根据他的选择给他提供评分。

我想出了几种方法...

  1. 定义用户输入的几个JSON结构,为每个等级值。

    {"list": [ { "user-data": "user_name_timestamp", "inputs": [ { "selected": [ { "do_you_drink_occasionally": "yes", "do_you_spend_more_than_100": "no" }, { "do_you_smoke_more_than_5": "no", "do_you_spend_more_than_50": "yes" } ] } ] } ]}

    ,然后直接每个值进行比较。

  2. 获取一组用户输入,然后比较并查找用户选择的输入,然后提供所需的评分。

我不知道这是否是好的,也有来处理,你必须要基于输入矩阵的情景更合适的方法。

任何建议,将不胜感激。

在此先感谢。

+0

是他们都将是是/否的答案还是有将是字符串/数字输入呢? –

+0

它们可以是任何物体.1/0或yes/no..i都可以根据需要进行配置。 – Milind

+0

如果他们很简单是/否的答案,我觉得像多维数组是最简单的,因为你可以将yes/no转换为1/0,然后只是'result [first] [second] [third]'等。我觉得JSON可能会比较费解,因为他们所做的只是存储选定的选项,无论如何您都需要进行处理。 –

回答

0

你可以这样做第一:

var array = new Array(2); 
 

 
for (let i = 0; i < array.length; i++) 
 
{ 
 
\t array[i] = new Array(2); 
 
} 
 

 
for (let i = 0; i < array.length; i++) 
 
{ 
 
\t for (let j = 0; j < array.length; j++) 
 
    { 
 
    array[i][j] = new Array(2); 
 
    } 
 
} 
 

 
//define what you want the end options to be 
 

 
array[1][1][1] = "You eat too much, you are fat" 
 

 
console.log(array);

所以这样做是什么,如果所有选项都为真(假设你的答案是= 1,无= 0)。您可以快速访问相应的答案。

您将需要设置每个最终选项。

因此,我假设一个问题与下一个问题相关,例如。

Q1。你喝酒吗? Q2。你抽烟吗? Q3。你有吸毒吗?

(假设全部是)

var q1 = 1 
var q2 = 1 
var q3 = 1 

array[q1][q2][q3] // Should print out "You eat too much, you are fat" 
+0

这看起来不错。如何使用输入参数..我们遍历用户选择的参数....?您可以添加一个更具描述性的例子,并在其中注释... – Milind

+0

使用给定的响应访问答案,不知道如何他们排列在你的尽头,但我编辑了一个粗略的例子 –

+0

第一个和第二个循环是做什么的。这种方法是否有助于多个是/否...?如果有6个选项,我将不得不定义6个不同的最终答案,如果我使用这种方法..? – Milind