使用php从数据库检查Radiobox

时间:2012-09-14 02:00:11

标签: php cakephp radio-button

假设我的代码如下:

<?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的无线电盒。

问题:

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

2 个答案:

答案 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; ?>">