如何从输入字段和选择列表中将HREF设置为文本?

时间:2013-03-19 16:25:26

标签: javascript html href

当用户点击“搜索”按钮时,我正尝试将我的按钮的HREF设置为输入字段中的文本和选择列表中的选定选项。

<div>
  <div>
    <input type="text" value="Keywords" style="width:206px" />
  </div>
  <div style="clear:both">
    <select>
      <option value="Test">Test</option>
    </select>
  </div>
  <div>
    <button><a href="">Search</a></button>
  </div>
</div>

如何根据输入框的值和选择列表的选定值设置href?我可能需要为此创建一个表单但我认为我可以使用更简单的东西。我只需要编译搜索字符串并将用户重定向到适当的页面,因为搜索引擎已经构建完毕。

谢谢!

修改1

很抱歉,我正在使用php来加载选择列表但我无法提供选择列表如何填充的代码,因为它中包含公司敏感信息。我不应该包括那个。

2 个答案:

答案 0 :(得分:1)

使用javascript,您可以检索表单字段并对其进行处理,并将其处理为您需要的内容。

假设选择ID为select且链接ID为link

var value = document.getElementById('select').value;
document.getElementById('link').setAttribute('href', value);

答案 1 :(得分:1)

仅使用PHP(没有jQuery,没有Javascript),您可以在表单中使用提交按钮并使用$_POST

首先是你的表格(剥离到基础):

<form method="post">    
    <input name="keywords" type="text" value="Keywords" style="width:206px" />
    <select name="options">
        <option value="Test">Test</option>
    </select>
    <input type="submit" name="ok" value="ok" />
</form>

第二,在包含该表单的php页面的开头:

if (isset($_POST['ok'])) { // submit has been clicked...

    if (isset($_POST[keywords])) { // there's input in keywords

        $keywords = $_POST['keywords'];
        // sanitize $keywords to prevent sql-injection

        // go to the page you want to call...
        // assuming there's no output before header ...
        // and $keywords is in the right format ...
        // and you retrieved $_POST['options'] to do sth with that, too

        header('Location: http://www.url.com/page.php?key=$keywords');
    } else exit('no keywords entered!');  
}