在Postback上记住PHP中选定的下拉位置的最简单方法

时间:2013-03-11 18:51:01

标签: php drop-down-menu foreach postback smarty

注意:我被迫使用TPL文件。我看过这个网站上的其他解决方案,它们似乎对我不起作用。我知道我想用$ _POST ['book']选择哪个选项。 我已经尝试过{html_options}(聪明),似乎没什么用。我想要做的就是在用户点击提交(GO)按钮时记住下拉列表位置。实现这个最简单的方法是什么?

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
      $book = $_POST['book'];
      $chapter = $_POST['chapter'];
      $tbl_link = "PLD_LINK";

      $query_chapter = "SELECT `TITLE`,`SORT_ORD`, `DESCRIPTION` FROM $tbl_link WHERE `TITLE` LIKE '%$book%' && `SORT_ORD` = '$chapter'";
      $search_chapter=$db->query($query_chapter);
      while($row = $search_chapter->fetch(PDO::FETCH_ASSOC)) {
      { $coal[] = $row; }
      $tpl->assign('coal', $coal);                       
                                                             }
      $search_chapter->closeCursor();
    }
?>
<?php
while($rows = $result->fetch(PDO::FETCH_ASSOC)) {
{ $results[] = $rows ; }
$tpl->assign('results', $results);
}
?>

.TPL:

<select name='book'>
{foreach item=rows from=$results}
<option value='{$rows.TITLE}'>{$rows.TITLE}</option>{/foreach}
</select>

1 个答案:

答案 0 :(得分:1)

修改模板文件

<select name='book'>
{foreach item=rows from=$results}
<option value='{$rows.TITLE}'{if isset($book) && $rows.TITLE == $book} selected{/if}>{$rows.TITLE}</option>{/foreach}
</select>

并在您的php文件中分配$value

$tpl->assign("book", $book);