我正在寻找一种保存方法,并在提交表单时在 SWI-Prolog 中处理 Web 表单的参数后调用同一个程序来生成另一个表单,依此类推。总是从一种形式调用相同的 prolog 程序到下一种形式。
CGI SWI-Prolog 库将这些参数保存为名称(值)术语列表,即[Name(Value)]
.
如果我在表单内传递参数(如隐藏参数)(TotalArguments 是一个列表):
format('"<"input type="hidden" id="nameofform1" name="nameofform1" value="~w" />~n', TotalArguments),
当我附加它时,我需要删除在 TotalArguments 上的结果列表中连接的 id 或名称。知道如何做到这一点,以便最终列表看起来像[nameofform1(value1), nameofform2(value2),...]
吗?
我也可以编写这个参数列表并将其附加到一个文件中,并在每次再次调用程序时查阅它,但这将始终加载它们,我只需要加载特定步骤中所需的参数和处理的表单片刻。因为否则此文件在某些执行后可能包含不需要的信息。关于如何做到这一点的任何想法?
对于此类问题还有其他建议吗?
使用隐藏表单编辑我的解决方案
我通过创建解决了它:
extract_value([],_). extract_value([A0|__ ], Valor) :- A0 =.. [_, Value], Valor is Value.
然后做:
extract_value(参数,值),
并提交表单的隐藏值,例如:
format('<"input type="hidden" id="nameofform1" name="nameofform1" value="~w"/>~n', [值]),
并将其附加到下一个表单中,以便它看起来像我想要的那样:
[nameofform2(value2),nameofform1(value1)]