动态构建约束逻辑处理器

时间:2012-01-23 19:17:35

标签: php mysql

这可能更像是一个讨论或假设的问题,但这里有......

有没有人知道任何现有的可用源(理想情况下使用jQuery)来构建普通Joe可用于创建进程的逻辑块。基本上我想到的是你可以将所有构建块放在一起,然后选择所需的操作,如果块为真,则选择结果。例如:

[IF] {ACTION_A} [AND] {ACTION_2} [THEN] (RESULT_1)

[IF] {ACTION_B} [OR] {ACTION_A} [THEN] (RESULT_2)

前面在PHP中定义了大括号,并且可以(可能)从下拉列表中选择。也许就像我在这里看到的那样:http://www.surveygizmo.com/survey-support/tutorials/logic-builder-building-skip-jump-and-show-when-logic-rules/是我正在寻找的,虽然我真的不想重新发明轮子。

我还需要将所有内容存储在MySQL中,尽管[IF]块可能只是1个项目,但它可能是几个。如果我不得不从头做这个,我不确定最好的方法来存储多个项目,然后将它们粘合在一起制作一个条件语句。

我希望能在这里获得一些灵感,如果没有,那就是在不需要重新发明的地方找到灵感......

更新

例如,也许一个动作块是DAY - 所以逻辑块/选择菜单就像:

[IF] {DAY} [EQUALS] 'wednesday' [THEN] (message = 'it is midweek!')

或者也许:

[IF] {DAY} [EQUALS] 'friday' [THEN] (message = 'the weekend is almost here!')

所有用户条目都将被完全检查并且非常有限,因此不会发生注射......

更新2

这是我刚发现的另一个例子,类似于这个http://ksistem.com/jquery/sqlbuilderdemo.htm但不是SQL - 但与数据库无关,只是我将定义的设置动作的条件。

更新3

根据这篇文章,Magento提供了类似的东西:jQuery (or any web tool) Nested Expression Builder(虽然这是去年8月)

1 个答案:

答案 0 :(得分:0)

这在某种程度上取决于术语“逻辑构建器”的含义。如果您只想提供构造一系列if-then-else条件的能力,其中每个条件调用一个或多个预定义函数,那么您可以通过XML(以及其他方法)轻松实现此目的。

您可能有一个表行,其中每行看起来像这样:

Cell 1:  IF
Cell 2:  [dropown containing list of functions] [dropdown containing possible values]
Cell 3:  THEN [dropown containing list of functions] [dropdown containing possible values]
Cell 4:  ELSE [dropown containing list of functions] [dropdown containing possible values]

并提供一个复制行的按钮,并指定新的if-then-else子句。

另一方面,如果您希望为用户提供更完整的逻辑构建器 - 例如,如果您希望允许用户也能够构造每个条件将调用的函数,提供预定义列表 - 您正在寻找一个完全不同的问题。

if-then-else子句易于以WYSIWYG格式指定的原因是因为只有这种条件(并且没有while循环)的语言只能建模整个可计算函数类的严格子集;即这些语言不是图灵完整的。如果您希望提供一个完全图灵完备的逻辑构建器 - 嗯,我认为此时这将是一项艰巨的任务。