PHP表单传递vars

时间:2012-04-20 19:44:41

标签: php mysql

我正在尝试使用下拉列表从表单传递变量,这些列表由查询填充。它目前转到 result.php

<form action="result.php" method="post">

<SELECT NAME=Model class="normal"> 
<OPTION VALUE=0>Phone
<?=$model_o?> 
</SELECT> 

<SELECT NAME=Mins  class="small"> 
<OPTION VALUE=0>Mins
<?=$minutes_o?> 
</SELECT> 

<SELECT NAME=Texts class="small"> 
<OPTION VALUE=0>Texts
<?=$texts_o?> 
</SELECT> 

<SELECT NAME=Freegifts class="big"> 
<OPTION VALUE=0>Choose Free Gifts 
<?=$freegifts_o?> 
</SELECT> 

<SELECT NAME=Network class="normal"> 
<OPTION VALUE=0>Network 
<?=$network_name_o?> 
</SELECT> 

<SELECT NAME=Merchant class="normal"> 
<OPTION VALUE=0>Contract/Prepay 
<?=$merchant_category_o?> 
</SELECT> 
<br>
<button type="submit" value="search phones" class="red"><span>Sumbit</span></button>

</form>

但是,我想要它做的是将每个下拉列表中的任何变量传递给URL,只有选择了一个选项。

例如,如果选择“模型”,则会在选择“提交”时将变量传递给URL。 result.php?model = iphone 如果选择了型号和分钟,则URL会像的 result.php模型= iphone&安培;?分钟= 500

我希望这是有道理的,因为我很难解释我实际上想要激活的内容。

提前致谢:)

3 个答案:

答案 0 :(得分:1)

您可以使用JavaScript删除提交时零值的任何变量,因此它们不会到达result.php(包括URL),因为它们不在$GET数组中。

你可以设计result.php,这样如果没有找到零值,它就会正常运行但是如果找到任何值,则会构建一个只包含其他非零变量的新URL,然后result.php可以重定向回本身。

说实话,我不会做以上任何一件事。由于每个下拉菜单都有一个值为零的选项,因此您可以简单地忽略result.php中收到的所有零值,但这不会从URL中删除零值的变量。想想你为什么要这样做。在接收端进行这种处理要合理得多。


我假设您打算使用GET而不是POST

答案 1 :(得分:0)

对于默认选择(不计数的选项),将value属性设置为“”。我相信这会向浏览器表明不会发送数据。

<select name="select1">
    <option value="">Default Selection</option>
    <option value="X">First option</option>
</select>

答案 2 :(得分:0)

由于您正在使用GET,因此您无法发送包含与之关联的数据的表单字段。使用GET将发送有关表单的所有内容,包括所有字段,即使它们没有任何数据。你能用Javascript解析它还是使用POST代替?

<强>澄清 我说你正在使用GET,尽管你的表格标签指示POST因为你的跟进(result.php?model ....)。