在 PHP 中更新已选中的复选框

2021-12-23 00:00:00 checkbox php mysql

假设我有一个用户选择的复选框列表.

let's say I have a list of checkboxes that the user selects.

<input type="checkbox" name="utility[]" id="utility[]" value="Water" />Water<br />
<input type="checkbox" name="utility[]" id="utility[]" value="Cable" />Cable<br />
<input type="checkbox" name="utility[]" id="utility[]" value="Electricity" />Electricity<br />
etc...

用户选择了 Water 并将其添加到数据库中.现在用户想要更新列表:

The user selected Water and it is added to the database. Now the user wants to update the list:

<input type="checkbox" name="utility[]" id="utility[]" value="Water" checked="checked"/>Water<br />
<input type="checkbox" name="utility[]" id="utility[]" value="Cable" />Cable<br />
<input type="checkbox" name="utility[]" id="utility[]" value="Electricity" />Electricity<br />
etc...

如何检查该实用程序是否已在 PHP 中检查过?

How can I check that the utility has already been checked in PHP?

推荐答案

我过去所做的,为了避免数百行的臃肿是这样的...

What I've done in the past, to save having hundreds of lines of bloat is this...

首先编译一个变量中的所有 html,没有任何检查"的实例.

First compile all the html in a variable, without any "checked" instances.

$boxes = '';
$boxes .= '<input type="checkbox" name="utility[]" id="utility[]" value="Water" />Water<br />';
$boxes .= '<input type="checkbox" name="utility[]" id="utility[]" value="Cable" />Cable<br />';
$boxes .= '<input type="checkbox" name="utility[]" id="utility[]" value="Electricity" />Electricity<br />';

现在我循环检查您的字段数组.我也在这里提供了一个示例数组.

Now I loop over your array of fields to check. I've provided a sample array here too.

$already_checked = array('Water', 'Electricity');

foreach( $already_checked as $ac ) {
    $find = 'value="' . $ac . '"';
    $replace = $find . ' checked="checked"';
    $boxes = str_replace($find, $replace, $boxes);
}

echo $boxes;

相关文章