0

假设我的代码 php 如下:

<?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";
        }

?>

和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 的单选框。

问题:

我只能从数据库中选择单选框的值,它不起作用。我该如何解决这个问题?请任何人帮助我,谢谢。

4

2 回答 2

1

这是一些相当可怕的代码。

第一个问题:您正在执行while()循环以从查询中获取结果。如果您要获取多行数据,您将设置所有或部分这些$checkX变量,但在特定循环迭代期间实际上并未对它们进行任何操作。假设您获取了足够多的行,最终所有这些变量都将是checked并且您最终选择了所有单选按钮。

如果您只期望一行数据,那么 while() 只是货物崇拜编程。

第二个问题。您在那里重复了很多代码,并定义了很多变量,以便通过循环更容易/更清洁地完成一些事情。例如

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 变量,没有重复输入。只是一个很好的循环为你做输出。

于 2012-09-14T02:06:00.540 回答
0

您需要输出变量。

<input type="radio" name="number1" value="1" checked="<?php echo $check1; ?>">
于 2012-09-14T02:05:15.027 回答