我正在尝试使用下拉列表从表单传递变量,这些列表由查询填充。它目前转到 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
我希望这是有道理的,因为我很难解释我实际上想要激活的内容。
提前致谢:)
答案 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 ....)。