如何链接到HTML select语句中选择的文档?

时间:2011-05-18 18:22:15

标签: html forms

我有一个可以从列表中选择的文档列表(请参阅下面的HTML)。单击“查看”按钮时,是否可以链接到所选文档?我承认我是HTML编码的新手。提前感谢您提供的任何建议。

<form name="frmDocs" method="post">
   <select name=docs style='width:auto'>
       <option value="1">Document 1</option>
       <option value="2">Document 2</option>
       <option value="3">Document 3</option>
       <option value="4">Document 4</option>                    
       <option value="5">Document 5</option>
   </select>
   <input value="View" type=submit>
</form>

4 个答案:

答案 0 :(得分:1)

您可以使用JavaScript或服务器端从客户端使用您选择的脚本语言执行此操作。由于您的问题没有说明您正在使用哪种服务器,我将给出客户端答案。

另外,如果你还没有发现jQuery,你绝对想要。看看getting started guide

使用jQuery:

$('form[name=frmDocs] input[type=submit]').click(funciton() {
    location.assign($('form[name=frmDocs] select[name=docs]').val());
});

您还需要将每个select元素的value更改为您要重定向到的网址。

如果您为HTML元素分配ID ......

<form name="frmDocs" method="post">
   <select id="docs" name="docs" style="width:auto">
       <option value="page1.html">Document 1</option>
       <option value="page2.html">Document 2</option>
       <option value="page3.html">Document 3</option>
       <option value="page4.html">Document 4</option>                    
       <option value="page5.html">Document 5</option>
   </select>
   <input id="submit" value="View" type="submit">
</form>

...然后您的代码变得更简单:(因为id 必须是唯一的,而name s不一定是唯一的)

$('#submit').click(funciton() {
    location.assign($('#docs').val());
});

答案 1 :(得分:0)

显然,您可以通过将文档列为链接列表而不是表单字段来链接到文档:

<ul>
    <li><a href="URL_OF_DOCUMENT_1"></a>Document 1</li>
    <li><a href="URL_OF_DOCUMENT_2"></a>Document 2</li>
    <li><a href="URL_OF_DOCUMENT_3"></a>Document 3</li>
    <li><a href="URL_OF_DOCUMENT_4"></a>Document 4</li>
    <li><a href="URL_OF_DOCUMENT_5"></a>Document 5</li>
</ul>

但是,对于您所描述的功能,您需要:

1)服务器端脚本,在提交表单时将用户重定向到所选文档的URL;或

2)一些JavaScript在提交表单时将浏览器窗口的URL更改为所选文档的URL(参见例如Josh’s answer)。

答案 2 :(得分:0)

使用PHP:

<?php
    $docs = (isset($_POST['docs']) && is_numeric($_POST['docs'])) ? (int)$_POST['docs'] : 0;

    $pages = array(
        '0' => 'index.html',
        '1' => 'page1.html',
        '2' => 'page2.html',
        '3' => 'page3.html',
        '4' => 'page4.html',
        '5' => 'page5.html'
    );

    if (in_array($docs, $pages)) { header('Location: ' . $pages[$docs]); }
?>

答案 3 :(得分:0)

我使用HTML回发方法使用类似于上述答案的代码使页面正常工作:

如果您为HTML元素分配ID ......

           文件1        文件2        文件3        文件4        文件5        

我将不得不探索使用Java或PHP显示的其他一些选项。有很多东西需要学习。再次感谢您的所有答案和帮助!!!非常感谢。