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

Php 如何为HTML表单生成器创建逻辑语法,php,html,forms,Php,Html,Forms,如果你知道有任何开源项目做类似的事情,我很乐意看看源代码。我正在寻找的例子。您可以自定义生成一个与 姓名: 地址: 邮政编码: 性别:男/女 现在在这个领域,我希望管理员能够定义一个逻辑标准,如果性别是女性,那么一些问题就会出现,如果男性,其他问题就会出现。这将动态完成,因为我不知道客户构建了什么 女性问题一:客户会给出的逻辑语法应该是[性别]=“女性” 那么,我将如何实施这样的东西呢。如果是PHP,我会更喜欢,但其他语言也可以 这是一张图片,这将由用户输入,我将不得不解析它。 根据我的经验,效

如果你知道有任何开源项目做类似的事情,我很乐意看看源代码。我正在寻找的例子。您可以自定义生成一个与

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

女性问题一:客户会给出的逻辑语法应该是[性别]=“女性”

那么,我将如何实施这样的东西呢。如果是PHP,我会更喜欢,但其他语言也可以

这是一张图片,这将由用户输入,我将不得不解析它。 根据我的经验,效果很好!这种技术叫做表单链接,我相信如果这个解决方案不起作用,你可以在谷歌上找到更多关于它的信息

<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显示它,或者手动显示它,而无需调用其他文件和使用数据库

下面是它的样子:

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”。

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

一种让人们指定在什么条件下出现一个字段的方法,您提供了一个屏幕截图-我假设这是一个示例/模型

一种标准化的语言,人们可以使用它来指定自己的条件

一个解析器,它将解释用户键入的内容,并将其转换为某种标准表示形式

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

您还必须做出一些设计决策,它们将决定您可以使用哪些语言。例如,如果单击“下一步”按钮时只显示/隐藏问题就足够了,那么您可以单独在PHP中执行。如果在单击“下一步”之前需要动态隐藏同一网页上的问题,则需要使用javascript或类似工具


对于第3部分和第4部分,javascript和php提供了一些有用的答案,这些答案可能会为您指明正确的方向。

@MarkFisher我更喜欢使用php,但其他语言也可以,这不是海报所要求的——问题是如何给用户定制逻辑的能力。我认为没有人理解你的愿望。屏幕截图来自哪个应用程序?它的名字可以消除很多误解!我假设您想要构建一个类似的应用程序,但它构建的是HTML表单,而不是这个应用程序生成的表单。@SimonPlus我在构建surveymonkey之类的应用程序时读到了这一点,我想用复杂的条件问题。我假设这张图片是平面设计部门的一个模型。@SimonPlus在谷歌机器上翻了一翻,表明截图来自调查工具。例如,见。
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)