【问题标题】:How to insert multiple checkbox value respect their id如何插入多个复选框值尊重他们的ID
【发布时间】:2011-04-16 09:42:10
【问题描述】:

我从数据库中获取一些值。并希望更新数据库表尊重他们的 id。

这是我的代码:

<?php 
$sql = "SELECT * FROM tbl_ads ORDER BY ads_id DESC LIMIT $START, $LIMIT";
$result = mysql_query( $sql );
$num = mysql_num_rows( $result );
if( $num > 0 ){
  while( $row = mysql_fetch_array( $result ) ){ ?>
<tr bgcolor="#E1E1E1">
  <td align="left" valign="top" bgcolor="#F1F1F1" class="BlackText2">
    <?php echo $row['title'];?>
  </td>
  <td align="left" valign="top" bgcolor="#F1F1F1" class="BlackText2">
    <?php echo substr($row['description'], 0, 40);?>
  </td>
  <td align="left" valign="top" bgcolor="#F1F1F1">
    <?php echo $row['mywebsite'];?>
  </td>
  <td align="center" valign="top" bgcolor="#F1F1F1">
    <input type="hidden" name="ads_id[]" value="<?php echo $row['ads_id'];?>">
    <input type="checkbox" name="feature[]" value="feature">
  </td>
<?php
    if( isset( $_REQUEST['submit'] ) ){
      $feature = $_POST['feature'];
      $ads_id = $_REQUEST['ads_id'];
      if( empty( $feature ) ){
        echo( "You didn't select any buildings." );
      }else{
        $N = count( $feature );
        $M = count( $ads_id );
        echo("You selected $N door(s): ");
        for( $i=0 ; $i < $N ; $i++ ){
          for( $j=0 ; $j < $M ; $j++ ){
            echo ( $feature[$i] . " " );
            echo $update_feature = "UPDATE tbl_ads SET `featureads` = '".$feature[$i]."' WHERE ads_id ='".$ads_id[$j]."'";
            $result_feaure = mysql_query($update_feature);
          }
        }
      }
    }
?>

但我的问题是当我更新 featureads 列尊重 ads_id 列时,所有列都被选中。

如何解决这个问题?

【问题讨论】:

  • 不要使用 bgcoloralign 属性,而是使用 CSS 来设置输出样式。我建议不要使用mysql_ 函数,最好使用PDO 或至少MySQLi。另外,$START 和 $END 变量从何而来?您的代码几乎没有其他问题...
  • @Cobby 感谢您的建议,$START 和 $END 变量来自其他 sql。实际上我的问题是当我选中 1 或 2 复选框并且“$update_feature”sql 运行时所有功能行都更新而不是 2 个选定字段

标签: php forms checkbox


【解决方案1】:

看起来您有一个表来存储某物的所有 ID,并且您希望有人能够将每条记录定义为特色“广告”并一次性完成。

我的建议是更改代码:

<input type="checkbox" name="feature[]" value="feature">

反映所选功能并回溯您的功能以适应。 例如:

<input type="checkbox" name="feature[]" value="<?php  echo $row['ads_id']; ?>">

选中复选框时设置复选框值,您上面的代码将意味着功能复选框的值将始终为“功能”,但不会与“ads_id”字段相关。

通过更改为上面的示例,您可以:

  • 更新表格以说明没有任何添加是特色

  • 循环通过 feature[] 表单变量来更新表格以将所选列的特色列设置为 true。

我做过类似的事情,但使用了 radiogroups,因为 check 只有在它们被选中时才会给你一个值。

例如:

  <label><input type="radio" name="feature[$id]" value="yes"/>yes</label>
  <label><input type="radio" name="feature[$id]" value="no"/>no</label>

第 :)

【讨论】:

  • 我希望当我选中一个复选框时,只有该行会被提及为 featureads。
猜你喜欢
  • 1970-01-01
  • 2013-12-09
  • 2021-03-06
  • 2014-12-05
  • 1970-01-01
  • 2015-11-09
  • 2012-08-20
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多