我想更改此代码......
<form action="search.php" method="get" name="form1" id="form1">
<select name="name">
<option value="category">CATEGORY</option>
<option value="product">PRODUCT</option>
</select>
<input name="value" type="text" id="catprod" size="20" />
最后我想收到一个类型为......的链接
http://www.mysite.com/search.php?product=car
或
http://www.mysite.com/search.php?category=auto
取决于下拉列表中的哪个项目将选择客户。 “Car”和“Auto”是来自客户的搜索请求,他们将输入。
答案 0 :(得分:2)
嗯,有两种方法可以做到这一点。
第一个是在更改de select时将text-field的输入名称更改为正确的名称(类别或产品)。所以你做了一个
onChange="document.getElementById('catprod').name = this.value;"
注意在加载时,您已经为输入提供了正确的名称。在正常情况下,这将是“类别”(因为它被选为第一个)。
另一种选择是使2个输入字段隐藏1个。并显示用户选择的字段。 (也有onchange,但之后使用hide和show)。
无论如何,这两者都不是解决问题的最佳方法。最好的问题就是在PHP脚本中解决它。
答案 1 :(得分:1)
我会使用以下内容:
<html>
<head>
<script>
function redirect() {
window.location.href = 'http://www.mysite.com/search.php?'+document.form1.key.value+'='+document.form1.val.value;
}
</script>
</head>
<form name="form1" onsubmit="redirect(); return false;">
<select name="key">
<option value="category">CATEGORY</option>
<option value="product">PRODUCT</option>
</select>
<input name="val" type="text" id="catprod" />
</form>
</html>
你的javascript和html主要是以这种方式分开的。
答案 2 :(得分:0)
<form action="search.php" method="get" name="form1" id="form1">
<select style="border:1px solid rgb(102,153,204);background-color:FFFFCC;height:20px;width:120px;" onfocus="this.style.background='white'" onblur="this.style.background='FFFFCC'" name="name" id="myselect">
<option value="category">CATEGORY</option>
<option value="product">PRODUCT</option>
</select>
<input name="value" type="text" id="catprod" style="border:1px solid rgb(102,153,204);background-color:FFFFCC;height:15px;width:200px;" onfocus="this.style.background='white'" onblur="this.style.background='FFFFCC'" size="20" />
<script>
var submitform = function() {
form1.submit();
}
document.getElementById('myselect').onchange = submitform;
</script>
我强烈建议您不要使用内联css,因为您正在使用并为您的ID(和类)提供更有意义的名称。另外,避免使用内联JS。
脚本标记中的代码是什么,是在更改select元素的值时提交表单。由于您的表单使用方法&#34;获取&#34;,因此在提交表单时,您将拥有这些类型的网址。