我知道有人已经回答了这个问题,但是由于某种原因,他们给定的语法对我不起作用。我试图从数据库中获取一个单选按钮值,并将其显示在一个单选按钮中。我看了很多关于此的教程和红线,但仍然无法正常工作。 你们能仔细检查一下我的代码有什么问题吗?谢谢。
这就是我获取value
的方式。
<label>2-3 meters
<input type="radio" name="meter" value="2-3 Meters"
<?php
if($ssh== "2-3 Meters"){
echo "checked"; }
?>>
</label>
<label>1-2 meters
<input type="radio" name="meter" value="1-2 Meters"
<?php
if($ssh== "1-2 Meters"){
echo "checked"; }
?>>
</label>
<label>< 1 meter
<input type="radio" name="meter" value="< 1 Meter"
<?php
if($ssh== "< 1 Meter"){
echo "checked"; }
?>>
</label>
这是我的PHP
<?php
$con=mysqli_connect("localhost", "root", "", "db");
$edit=$_GET['id'];
$select="SELECT * FROM table WHERE id='$edit'";
$run=mysqli_query($con,$select);
$row=mysqli_fetch_array($run);
$id = "";
$ssh = "";
if(isset($_GET['ssh'])){
$ssh = $_GET['ssh'];
}
?>
答案 0 :(得分:1)
您的$_GET['ssh']
正在通过URL传递并且正在被编码,例如:
当您在1-2 Meters
上检索给定值1-2%20Meters
(?ssh = 1-2米)时,它看起来像PHP
(?ssh = 1-2%20Meters)。使用$_GET['ssh']
。请注意%20
字符插入空格,因为空格不是有效的URL字符,所以会发生这种情况。参见:What's valid and what's not in a URI query?
因此,您应先对其进行解码,然后再分配给$ssh
变量。
if(isset($_GET['ssh'])){
$ssh = urldecode($_GET['ssh']);
}
要从数据库中获取值并循环播放单选按钮,应该为:
<?php
while($row=mysqli_fetch_array($run)){
?>
<label><?php echo $row['title']; //whatever row name is on your database ?>
<input type="radio" name="meter" value="<?php echo $row['title']; ?>"
<?php
if($ssh == $row['title']){
echo "checked"; }
?>>
</label>
<?php } ?>
查看文档:{{3}}