如果您知道任何类似的开源项目,我很乐意查看源代码。我正在寻找的例子。您自定义构建一个类似于
的表单名称:
地址:
邮编:
性别:男/女
(现在在这个领域,我希望管理员能够定义一个逻辑标准,如果性别是女性,那么一些问题应该会出现,如果男性其他问题会出现)。这将动态完成,因为我不知道客户建立了什么。
女性问题一:(客户提出的逻辑语法是[gender] = 'female'
)
那么我将如何实现类似的东西。我更喜欢它是在PHP中,但其他语言会没问题。
这是一张图片,这将由用户输入,我将不得不解析它。
答案 0 :(得分:2)
$string = "[var_1] = '1' or [var_2] = '2' or [var_3] = '3'";
$pattern = "([\[]+[a-z0-9_]+[\]]+[ ]?+[=]+[ ]?+[\']+[0-9]+[\'])";
preg_match_all($pattern, $string, $string);
var_dump($string);
var_dump()
将打印以下内容:
array (size=1)
0 =>
array (size=3)
0 => string '[var_1] = '1'' (length=13)
1 => string '[var_2] = '2'' (length=13)
2 => string '[var_3] = '3'' (length=13)
该模式将与[var_1] = '1'
和 [var_1]='1'
匹配。
答案 1 :(得分:1)
听起来您想构建一个调查类型工具,人们可以在其中创建自定义表单。如果我了解它,你需要构建一些部分来获得你想要的东西:
人们可以在什么条件下指定字段出现的方式(您提供了截图 - 我假设这是一个示例/模拟)。
人们可以用来指定条件的标准化语言。
解析器将解释用户输入的内容,并将其转换为某种标准表示
将该标准表示转换为显示/隐藏问题的代码的编译器。
您还必须做出一些设计决定,并确定您可以使用的语言。例如,如果仅在单击“下一步”按钮时显示/隐藏问题就足够了,那么您可以单独使用PHP进行操作。如果您需要在点击下一步之前动态隐藏同一网页上的问题,则需要使用javascript或类似功能。
对于第3和第4部分,Lexer written in Javascript?(javascript)和What is a good parser generator for php?(php)中有一些有用的答案可能会指向正确的方向。
答案 2 :(得分:0)
<form>
<!-- some input fields here -->
<select id="gender" name="gender">
<option selected="selected" disabled="disabled">Gender?</option>
<option>Male</option>
<option>Female</option>
</select>
</form>
<script language="javascript">
$("#gender").change(function() {
if($("#gender").val() == "Male")
{
// display MALE questions
}
else
{
// display FEMALE questions
}
});
</script>
现在您可以使用AJAX调用PHP文件,从数据库中选择问题,然后使用JavaScript(element.innerHTML)显示它或手动显示它,而无需调用其他文件和使用数据库。
以下是它的样子:jsFiddle。
答案 3 :(得分:-1)
Here's a jQuery plugin I've used in the past.从我的经验中可以很好地运作!该技术被称为“表单链接”,如果此解决方案不起作用,我相信您可以在Google上找到有关它的更多信息。