PHP - 下拉功能,使当前页面保持焦点

时间:2011-01-28 19:51:18

标签: php html

我有一个下拉导航,用户点击按钮后会将用户带到下拉菜单中选择的页面。我有一个函数,它将页面部分标题作为参数,并在列表顶部使用该页面构建一个新的下拉列表,这样您导航到的每个页面都将在下拉列表中保持焦点。这个函数是一个庞大的开关案例,有很多重复的代码,我知道有一种更简单,更清晰的方法......我只是在思考解决方案时遇到了麻烦。这是一个代码片段,我不会发布整个开关案例:

function makeDropDown($page){ 
switch ($page){
    case 'uploads':
      echo '<center><form action="pictures.php" action="get">
         <select name="pictype">
         <option value="uploads">Uploads</option>
         <option value="fromweb">From Web</option>
         <option value="wallpapers">Wallpapers</option>
         <option value="misc">Miscellaneous</option>
         </select>
         <input type="submit" value = "Go!"/>
         </form></center>'; break;
   case 'fromweb':
      echo '<center><form action="pictures.php" action="get">
         <select name="pictype">
         <option value="fromweb">From Web</option>
         <option value="uploads">Uploads</option>
         <option value="wallpapers">Wallpapers</option>
         <option value="misc">Miscellaneous</option>
         </select>
         <input type="submit" value = "Go!"/>
         </form></center>'; break;
   case 'wallpapers':
      echo '<center><form action="pictures.php" action="get">
         <select name="pictype">
         <option value="wallpapers">Wallpapers</option>
         <option value="uploads">Uploads</option>
         <option value="fromweb">From Web</option>
         <option value="misc">Miscellaneous</option>
         </select>
         <input type="submit" value = "Go!"/>
         </form></center>'; break;

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

为什么不尝试使用选项的selected属性,而不是将所选项目移动到列表顶部。这会将选择框初始化为所选选项。只需在与selected

的值匹配的选项中回显$page即可
function makeDropDown($page){ 
    echo '<center><form action="pictures.php" action="get">';
    echo '    <select name="pictype">';
    echo '        <option value="uploads"'.(($page=="uploads")? " selected":"").'>Uploads</option>';
    echo '        <option value="fromweb"'.(($page=="fromweb")? " selected":"").'>From Web</option>';
    echo '        <option value="wallpapers"'.(($page=="wallpapers")? " selected":"").'>Wallpapers</option>';
    echo '        <option value="misc"'.(($page=="misc")? " selected":"").'>Miscellaneous</option>';
    echo '    </select>';
    echo '    <input type="submit" value = "Go!"/>';
    echo '</form></center>';
}

这样,如果$page=='misc',您的HTML就会以这种方式生成

<center><form action="pictures.php" action="get">
    <select name="pictype">
        <option value="uploads">Uploads</option>
        <option value="fromweb">From Web</option>
        <option value="wallpapers">Wallpapers</option>
        <option value="misc" selected>Miscellaneous</option>
    </select>
    <input type="submit" value = "Go!"/>
</form></center>'

答案 1 :(得分:1)

你可以尝试在每个案例的最后开头回复:

<script type="text/javascript">document.getElementsByName(name).focus();</script>

希望有所帮助。