如何使用查询参数预填充单选按钮?
Posted
技术标签:
【中文标题】如何使用查询参数预填充单选按钮?【英文标题】:How to pre-fill radio buttons using query parameters? 【发布时间】:2019-06-27 13:35:06 【问题描述】:我想在重定向到某个网站时预填充无线电输入。我没有对该网站的内部访问权限,所以我发现的唯一方法是使用查询参数。该网站中有不同类型的输入。我面临的问题是预填充单选按钮。
表单内的单选按钮如下所示,
<input type="radio" name="cate" id="cate1" value="1" style="font-size: bold">
<label for="cate1" style="font-size: bold">Category 1</label>
<br>
<input type="radio" name="cate" id="cate2" value="2" style="font-size: bold">
<label for="cate2" style="font-size: bold">Category 2</label>
br
<input type="radio" name="cate" id="cate3" value="3" style="font-size: bold">
<label for="cate3" style="font-size: bold">Category 3</label>
我尝试使用查询参数自动填充这些单选按钮,
domain.com?cate=1
但这不起作用。我的意思是单选按钮不会被选中。
有没有办法使用查询参数预填充这些按钮?
【问题讨论】:
【参考方案1】:没有。
允许任意第三方网站使用链接导致访问者的浏览器在不同的网站上预填表单会带来严重的安全风险。
您需要网站使用一种编程语言(通常是服务器端,但您也可以使用客户端 javascript)来解析查询字符串,然后设置关联输入的 checked
属性(或者在客户端 JS 的情况下通过 DOM 的 checked
属性)。
【讨论】:
【参考方案2】:简而言之,有可能但不可行。
您最好的办法是尝试在不填写某些必填字段的情况下提交表单,并希望表单使用 GET 进行提交。如果是这样,并且如果表单在服务器端验证,您可能会被重定向到 URL 将显示要传递的正确参数的页面。一旦你知道了这些 URL 参数,并且如果服务器端的代码使用这些 URL 参数预先填充表单,你就会得到你想要的。
【讨论】:
Exaclty,我已经完成了其他字段,我只填写了必填字段。我也知道要填写的正确参数。唯一的问题是单选按钮。如上所述,在 URL 参数中传递其名称时,我没有得到单选按钮。【参考方案3】:你可以在这里使用 php。从查询参数中获取值,根据查询参数值添加checked属性。
<?php
if(isset($_GET['cate'])) $cate=$_GET['cate'];
else $cate=0; //or any null value
?>
<input type="radio" name="cate" id="cate1" value="1" style="font-size: bold" <?php echo ($cate == 1) ? "checked" : ""; ?> >
<label for="cate1" style="font-size: bold">Category 1</label>
<br>
<input type="radio" name="cate" id="cate2" value="2" style="font-size: bold" <?php echo ($cate == 2) ? "checked" : ""; ?> >
<label for="cate2" style="font-size: bold">Category 2</label>
<br>
<input type="radio" name="cate" id="cate3" value="3" style="font-size: bold" <?php echo ($cate == 3) ? "checked" : ""; ?> >
<label for="cate3" style="font-size: bold">Category 3</label>
【讨论】:
不,他们不能。他们明确表示“我无权访问该网站”以上是关于如何使用查询参数预填充单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章