如何为HTML表单生成器创建逻辑语法

时间:2012-07-03 03:20:57

标签: php html forms html-form

如果您知道任何类似的开源项目,我很乐意查看源代码。我正在寻找的例子。您自定义构建一个类似于

的表单

名称:
地址:
邮编:
性别:男/女
(现在在这个领域,我希望管理员能够定义一个逻辑标准,如果性别是女性,那么一些问题应该会出现,如果男性其他问题会出现)。这将动态完成,因为我不知道客户建立了什么。

女性问题一:(客户提出的逻辑语法是[gender] = 'female'

那么我将如何实现类似的东西。我更喜欢它是在PHP中,但其他语言会没问题。

这是一张图片,这将由用户输入,我将不得不解析它。 enter image description here

4 个答案:

答案 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)

听起来您想构建一个调查类型工具,人们可以在其中创建自定义表单。如果我了解它,你需要构建一些部分来获得你想要的东西:

  1. 人们可以在什么条件下指定字段出现的方式(您提供了截图 - 我假设这是一个示例/模拟)。

  2. 人们可以用来指定条件的标准化语言。

  3. 解析器将解释用户输入的内容,并将其转换为某种标准表示

  4. 将该标准表示转换为显示/隐藏问题的代码的编译器。

  5. 您还必须做出一些设计决定,并确定您可以使用的语言。例如,如果仅在单击“下一步”按钮时显示/隐藏问题就足够了,那么您可以单独使用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上找到有关它的更多信息。