如果复选框的值在DATABASE中,如何选中它。 PHP

时间:2010-11-01 13:06:08

标签: php

我已经使用PHP

在mysql数据库中插入了一些复选框值

在下面的图片中,我获取了值:

alt text

现在我需要o / p,如下图所示:我应该检查我在数据库中插入的值

alt text

希望现在清楚。

提前致谢..

3 个答案:

答案 0 :(得分:2)

您应该有一个可用选项表(在这种情况下,类似于cities表),然后是用户到城市的查找表。然后,您可以遍历城市,但也可以获取用户已检查过的城市。

不知道您的数据库结构的示例如下:

$uid = $_SESSION['user']['id']; // your logged in user's ID

$cities = array();

// get an array of cities
$sql = "SELECT id, name FROM cities";
$res = mysql_query($sql);
while ($row = mysql_fetch_object($res)) {
    $cities[$row->id] = $row->name;
}

// get an array of cities user has checked
$sql = "SELECT DISTINCT city_id FROM users_cities WHERE user_id = '$uid'";
$res = mysql_query($sql);
while ($row = mysql_fetch_object($res)) {
    $checked[] = $row->city_id;
}

// this would be templated in a real world situation
foreach ($cities as $id => $name) {
    $checked = "";
    // check box if user has selected this city
    if (in_array($checked, $id)) {
        $checked = 'checked="checked" ';
    }
    echo '<input type="checkbox" name="city[]" value="'.$id.'" '.$checked.'/>';
}

答案 1 :(得分:1)

如果我理解你的问题,那么显而易见的最简单的方法就是你需要从数据库中获取记录,并且在生成HTML时[在类似的循环中]检查数组中是否存在该值。您没有向我们提供您的数据库结构或代码的任何示例,因此您必须亲自了解如何执行此操作。

答案 2 :(得分:0)

通常,您将值插入数据库。插入后,您应该再次访问相同的值。目前尚不清楚如何设置脚本,因此我们假设您重定向到另一个脚本。

您需要做的是再次从数据库中检索复选框的值。然后你知道哪些是被选中的。这可用于确定是否需要选中您的复选框。

注意:

  • 我假设你的查询结果是一个数组 将选定的ID作为值。
  • 我在这里假设您的字段存储在结果中 一些查询,基本上是一个数组 使用字段ID作为键和字段名称 作为价值。

,例如:

<?php
// Retrieve values from database.
$resultArray = ... some code ... ;

?>

<?php foreach ($field_types as $field_name => $field_value): ?>
<input type="checkbox" name="<?php echo $field_name; ?>" value="<?php echo $field_value ?>" <?php if (in_array($field_name, $resultArray)) { echo 'checked'; }/>
<?php endforeach; ?>

如果field_name在结果数组中(已经检查过结果),则会生成一个复选框。否则,它们只是呈现为未选中的复选框。希望这很清楚。