Я ищу способ сохранения и обработки аргументов веб-формы в SWI-Prolog, когда я отправляю форму и вызываю ту же программу для создания другой формы и так далее. Всегда вызывает одну и ту же программу пролога из одной формы в другую.
Библиотека CGI SWI-Prolog сохраняет эти аргументы в виде списка терминов имени (значения), то есть [Name(Value)]
.
если я передаю аргументы как скрытый аргумент внутри формы (TotalArguments - это список):
format ('"‹ "input type =" hidden "id =" nameofform1 "name =" nameofform1 "value =" ~ w "/> ~ n', TotalArguments),
Мне нужно избавиться от идентификатора или имени, которые объединяются в моем результирующем списке в TotalArguments, когда я его добавляю. Есть идеи, как это сделать, чтобы окончательный список выглядел как [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 (значение2), nameofform1 (значение1)]