假设我的代码如下:
<?php
include("connectdb.php");
$check1 = "";
$check2 = "";
$check3 = "";
$check4 = "";
$check5 = "";
$query = "SELECT * FROM tblworkfaire";
$res = mysql_query($query) or die(mysql_error());
if($res){
while($data = mysql_fetch_array($res)){
if($data['1.DesTechnique'] == 1){
$check1 = "CHECKED";
echo $check1;
}
else if($data['1.DesTechnique'] == 2){
$check2 = " CHECKED";
}
else if($data['1.DesTechnique'] == 3){
$check3 = "CHECKED";
}
else if($data['1.DesTechnique'] == 4){
$check4 = "CHECKED";
}
else if($data['1.DesTechnique'] == 5){
$check5 = "CHECKED";
}
}
}
else{
echo "Fail";
}
&GT;
和Html代码:
<form action="word2html.php" method="post">
<input type="radio" name="number1" value="1" checked="<? $check1; ?>">
</b><b>
<input name="number1" type="radio" value="2" checked="<? $check2; ?>">
</b><b>
<input name="number1" type="radio" value="3" checked="<? $check3; ?>">
</b><b>
<input name="number1" type="radio" value="4" checked="<? $check4; ?>">
</b><b>
<input name="number1" type="radio" value="5" checked="<? $check5; ?>">
</b>
我需要什么:
我已将无线电盒值存储在数据库中,如果我从数据库等于1中选择值,它将检查值等于1的无线电盒。
问题:
我只能从数据库中选择无线电盒的值,它不起作用。我该如何解决这个问题?请任何人帮助我,谢谢。
答案 0 :(得分:1)
这是一些相当可怕的代码。
第一个问题:您正在进行while()
循环以从查询中获取结果。如果您要获取多行数据,那么您将设置所有或部分$checkX
变量,但在特定循环迭代期间实际上并未对它们进行任何操作。假设您获取了足够的行,最终所有这些变量都将为checked
,并且您最终会选择所有单选按钮。
如果您只期望一行数据,那么while()就是货架式编程。
第二个问题。你已经在那里重复了很多代码,并定义了很多变量,对于一些可以通过循环更容易/更清晰的事情。 e.g。
for ($i = 1; $i <= 5; $i++) {
$checked = ($data['1.DesTechnique'] == $i) ? ' checked="checked"' : '';
echo <<<EOL
<input name="number1" type="radio" value="$i"$checked>$i<br />
EOL;
}
没有$ checkX变量,没有重复输入。只是一个很好的循环为你做输出。
答案 1 :(得分:0)
您需要输出变量。
<input type="radio" name="number1" value="1" checked="<?php echo $check1; ?>">