如何使用“get”将变量从HTML表单和DropList传递到PHP文件

时间:2012-09-04 15:32:31

标签: php html

我想更改此代码......

<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”是来自客户的搜索请求,他们将输入。

3 个答案:

答案 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;,因此在提交表单时,您将拥有这些类型的网址。