0

如何将其转换为 SWI-Prolog ?我没有在互联网上找到如何在 prolog 中编写 select,你能告诉我如何使 php 代码在 中工作吗?

<select id="data_nastere_zi" name="data_nastere_zi">                
    <option value="ZZ">ZZ</option>
    <?php for($i = 1; $i < 32; $i++){ ?>
         <option <?php print ($data[0][2]==$i)?'selected':''; ?>
         value="<?php echo $i;?>">
         <?php echo $i; ?>  </option>
         <?php 
         }
         ?>

</select> 
4

1 回答 1

0

似乎以预期的方式工作:

?- phrase(html(select([id(data_nastere_zi)], 
                      [option(greetings),
                       option([selected],pythagoras)])), X), 
   print_html(X).

产生:

<select id="data_nastere_zi">
<option>greetings</option>
<option selected>pythagoras</option>
</select>

您可以使用简洁的模块化技术来生成您需要的选项:

my_options(0) --> [].
my_options(N) --> html(option(N)), { succ(N0, N) }, my_options(N0).

然后在查询中,使用\来引用该规则:

?- phrase(html(select([id(data_nastere_zi)], 
                      [option(greetings),
                       \my_options(4)           % <-- note the \
                      ])), X), 
   print_html(X).

产生:

<select id="data_nastere_zi">
<option>greetings</option>
<option>4</option>
<option>3</option>
<option>2</option>
<option>1</option>
</select>

您将需要在其中添加一些关于您希望哪个是被选中的信息,但这并不难。

于 2013-05-29T22:22:41.777 回答