【发布时间】:2013-05-09 12:17:09
【问题描述】:
我有一个问题。让我用一个例子来解释这一点。 我有这段代码:
<form action="vehicles.php" method="get">
<span>Marca:
<select name="brand">
<option value="null" selected="selected"></option>
<option value="Volkswagen">Volkswagen</option>
<option value="Renault">Renault</option>
<option value="Peugeot">Peugeot</option>
<option value="Fiat">Fiat</option>
</select>
</span>
<span>Modelo:
<select name="model">
<option value="null" selected="selected"></option>
<option value="206">206</option>
<option value="Suran">Suran</option>
<option value="Passat">Passat</option>
<option value="Punto">Punto</option>
</select>
</span>
<input type="submit">
</form>
如果选择的选项是“null”选项,有什么方法可以阻止这些变量的赋值?
例如,如果我选择 brand="Renault" 和 model="null",则 url 是
http://mywebpage.com/vehicles.php?brand=Renault&model=null
但应该是的
http://mywebpage.com/vehicles.php?brand=Renault
我知道如何在使用 PHP 提交表单后取消设置“null”值的变量。在提交之前和变量设置为“null”之后有什么方法可以做到这一点。 我想要一个更简洁的网址,没有“variable=null”的结果。
P/D:我的母语不是英语,所以请随时编辑我的问题。我希望你能理解我。
【问题讨论】:
-
你不喜欢这个丑陋的 url,但是如果它在那些 get vars 中有值,你可以接受这个 url?除此之外,您可能希望在您选择的选项中添加一个值参数。
-
对,我只希望 url 中的 get vars 有值。
-
您可以使用 javascript 取消设置所有选择的名称属性,在提交时使用 null 或 - 值
-
@Orangepill 我必须在什么时候这样做?因为我用 PHP 成功尝试过,但 url 仍然相同,因为未设置是在页面加载之后。
-
这将在提交信息之前在客户端完成......这里有一些 jquery 代码(未经测试),可能会让你到达那里。
$(form).on("submit", function(){$('select').filter(function(){ $(this).val() != "-"; }).each(function(){ $(this).removeProp("name")});