2

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

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

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

那么我将如何实施这样的事情。如果它是在 PHP 中,我会更喜欢,但其他语言会很好。

这是一张图片,这将由用户输入,我必须对其进行解析。 在此处输入图像描述

4

4 回答 4

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'

于 2012-07-06T09:48:37.097 回答
1

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

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

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

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

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

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

对于第 3 部分和第 4 部分,用 Javascript 编写的 Lexer 中有一些有用的答案吗?(javascript)什么是好的 php 解析器生成器?(php) 这可能会为您指明正确的方向。

于 2012-07-12T02:31:24.670 回答
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

于 2012-07-05T16:31:09.017 回答
-1

这是我过去使用的一个 jQuery 插件。 根据我的经验,效果很好!该技术称为“表单链接”,如果此解决方案不起作用,我相信您可以在 Google 上找到有关它的更多信息。

于 2012-07-05T16:21:48.617 回答