只提交HTML表单的“相关”部分

时间:2014-05-04 16:04:20

标签: php html forms

道歉,如果这是一个愚蠢的,但这是漫长的一天。 所以我的表格看起来像这样......

<form action="/basket.php" method="get">
.co.uk
<select name="years">
<option value="1">1 year</option>
<option value="2">2 years</option>
<option value="3">3 years</option>
<option value="4">4 years</option>
<option value="5">5 years</option>
</select>
<input type="checkbox" name="url" value=".co.uk">
<br>
.com
<select name="years">
<option value="1">1 year</option>
<option value="2">2 years</option>
<option value="3">3 years</option>
<option value="4">4 years</option>
<option value="5">5 years</option>
</select>
<input type="checkbox" name="url" value=".com">
<button type="submit">
</form>

假设我只勾选.com参数并将年份更改为3年。 我目前得到的URL如下:

/basket.php?years=1&url=.com&years=3

我想要的是......

/basket.php?url=.com&years=3

实际表单包含更多选项,但我只想提交勾选最后一个复选框的“行”。

希望这有意义!非常感谢提前。

1 个答案:

答案 0 :(得分:1)

首先,如果您的两个复选框是互斥的,您希望使用单选按钮,以便只能检查一个,如下所示:

<input type="radio" name="url" value=".com"/>
<input type="radio" name="url" value=".co.uk"/>

假设您正在寻找一个PHP解决方案而不是一个使用JavaScript的解决方案,我建议您将表单POST改为basket.php,这应根据{的值确定要保留的输入{1}},然后使用相应的$_POST['url']值重定向。

另请注意,您应为years元素使用不同的name元素,以便区分它们。

话虽如此,最好的选择是使用两个select元素,但这需要两个提交按钮或JavaScript来执行提交。

此外,如果它们共享form的相同选项,您可以删除重复的years以简化操作。