【问题标题】:Show checkbox with database value显示带有数据库值的复选框
【发布时间】:2015-08-10 18:08:41
【问题描述】:

我的部分代码有问题。如果相应的 DB 值为 1,我希望检查最后一列中的复选框,但我的代码总是出错,任何人看到有什么问题吗?这可能很简单,但我找不到。

<?php
    $sql = "SELECT * FROM registered ORDER BY datum"; 
$myData=mysql_query($sql,$con) ;
?>

<table width="1100" border="1">
<tr>
<th style="text-align:center; padding:0 10px">naam</th>
<th style="text-align:center; padding:0 10px">betaald?</b></th>
</tr>

<?php

$betaald = $record['betaald'];

while($record = mysql_fetch_array($myData)) {

    echo  "<tr>";
    echo  "<td>" . $record['naam'] . "</td>";
    echo  "<td> <input type='checkbox' name='betaald' id='betaald' value='1' ". echo ($betaald==1 ? 'checked' : ''); . " ></td>";
    echo  "</tr>";

    }

mysql_close($con);
?>

【问题讨论】:

    标签: php html mysql checkbox


    【解决方案1】:
    <?php
    $sql = "SELECT * FROM registered ORDER BY datum";
    $myData = mysql_query($sql, $con);
    ?>
    
    <table width="1100" border="1">
        <tr>
            <th style="text-align:center; padding:0 10px">naam</th>
            <th style="text-align:center; padding:0 10px">betaald?</b></th>
        </tr>
    
        <?php while ($record = mysql_fetch_array($myData)) { ?>
    
            <tr>
                <td><?php echo $record['naam'] ?></td>
                <td> 
                    <input type='checkbox' name='betaald' id='betaald' value='1'
                            <?php if($record['betaald'] == 1){ ?>
                                checked="checked"
                            <?php } ?>
                            />
                </td>
            </tr>
       <?php  } ?>
    </table>
    

    【讨论】:

      【解决方案2】:

      试试这个

      <?php
          $sql = "SELECT * FROM registered ORDER BY datum";
          $myData= mysql_query($sql) ;
      ?>
      
          <table width="1100" border="1">
          <tr>
              <th style="text-align:center; padding:0 10px">naam</th>
              <th style="text-align:center; padding:0 10px">betaald</b></th>
          </tr>
      
      <?php
      
          while($record = mysql_fetch_array($myData))
          {
              ?>
      
              <tr>
                  <td> <?php echo  $record['naam'] ?></td>
                  <td> <input type='checkbox' name='betaald' id='betaald' value='1' <?php echo ($record['betaald']==1 ? 'checked' : '')?>> </td>
              </tr>
      <?php
          }
      
          mysql_close($con);
      ?>
      

      mysql_query($sql) 无需定义$con

      注意:此扩展自 PHP 5.5.0 起已弃用,自 PHP 7.0.0 起已被删除

      【讨论】:

        【解决方案3】:
        <?php
            $sql = "SELECT * FROM registered ORDER BY datum"; 
        $myData=mysql_query($sql,$con) ;
        ?>
        
        <table width="1100" border="1">
        <tr>
        <th style="text-align:center; padding:0 10px">naam</th>
        <th style="text-align:center; padding:0 10px">betaald?</b></th>
        </tr>
        
        <?php
        
        
        
        while($record = mysql_fetch_array($myData)) {
        
            $betaald = $record['betaald'];
            echo  "<tr>";
            echo  "<td>" . $record['naam'] . "</td>";
            echo  "<td> <input type='checkbox' name='betaald' id='betaald' value='1' ";
            echo $betaald==1 ? 'checked' : '';
            echo " ></td>";
            echo  "</tr>";
        
            }
        
        mysql_close($con);
        ?>
        

        您已在 while 循环之外分配了 $betaald 值,因此 $betaald 中没有值。

        我在 while 循环中包含了$betaald。

        【讨论】:

        • 感谢您的回答,但我尝试了但没有成功。我注意到问题出在 echo " ";
        【解决方案4】:

        您需要对 php 和 html 代码进行一些更改。首先,我对您的代码有些困惑。让我清除那些。

        第 1 点 [name='betaald']:如果您有这样的名称,您将不会获得多个选定值。

        第 2 点 [id='betaald']: ID 在页面中必须是唯一的。

        第 3 点 [value='1']:如果所有值都具有相同的值,您将如何区分?

        所以你的代码应该是这样的:

        <?php
        $sql = "SELECT * FROM registered ORDER BY datum"; 
        $myData=mysql_query($sql,$con) ;
        ?>
        
        <table width="1100" border="1">
        <tr>
        <th style="text-align:center; padding:0 10px">naam</th>
        <th style="text-align:center; padding:0 10px">betaald?</b></th>
        </tr>
        
            <?php
        $betaald = $_POST['betaald'];
        $i = 1;
        while($record = mysql_fetch_array($myData)) {
        
            echo  "<tr>";
            echo  "<td>" . $record['naam'] . "</td>";
            echo  "<td> <input type='checkbox' name='betaald[]' id='betaald".$i."' value='".$record['betaald']."' ";
            if ($record['betaald'] == $betaald)
            {
                echo "checked";
            }
            echo " ></td>";
            echo  "</tr>";
            $i++;
            }
        
        mysql_close($con);
        ?>
        

        【讨论】:

          猜你喜欢
          • 2019-11-24
          • 1970-01-01
          • 2016-09-05
          • 2016-09-24
          • 1970-01-01
          • 1970-01-01
          • 2015-10-10
          • 2016-08-05
          • 2013-09-17
          相关资源
          最近更新 更多