-1

我正在尝试使用由查询填充的下拉列表从表单传递变量。它目前转到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,如果同时选择了模型和 mins,则 URL 将类似于result.php?model=iphone&mins =500

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

提前致谢 :)

4

3 回答 3

1

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

您可以对 result.php 进行工程设计,以便如果没有找到零值,它会正常运行,但如果找到,则会构建一个仅包含其他非零变量的新 URL,并且 result.php 然后可以重定向回自身。

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


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

于 2012-04-20T19:57:20.673 回答
0

对于您的默认选择(不计入的选择),将 value 属性设置为“”。我相信这将指示浏览器不要发送该数据。

<select name="select1">
    <option value="">Default Selection</option>
    <option value="X">First option</option>
</select>
于 2012-04-20T19:56:12.213 回答
0

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

澄清 我说您正在使用 GET 尽管您的表单标签指示 POST 由于您的跟进(result.php?model....)。

于 2012-04-20T19:59:42.520 回答