刷新后保持选中循环中的复选框
Keep checkboxes from loop checked after refresh
我无法在刷新后选中正确的复选框。我看过其他问题,但似乎没有人处理这个复选框是从 for 循环生成的问题(至少我找不到任何东西)。
当我选中一些复选框时,3 个随机复选框,刷新时我有 3 个选中的复选框。然而,这些总是前 3 个,而不是我检查过的确切的。
显然我的代码存在一些我应该解决的问题,但这也让我提出了另一个问题。通过循环生成元素是不好的做法吗?我认为它更好,因为它避免了或多或少重复的行
$numberOfLanguages = count($languageOptions);
for ($i = 0; $i < $numberOfLanguages; $i++) {
$check = '';
if (empty($_POST['language'][$i])) {
$check = '';
}
if (!empty($_POST['language'][$i])) {
$check = 'checked';
}
?>
<li><input type="checkbox" name="language[]" value=" <?php echo $languageOptions[$i] ?>" <?php if($check == 'checked'): ?>checked="checked"<?php endif; ?> /><?php echo $languageOptions[$i] ?></li>
<?php
}
你也必须在输入标签的名称中包含行号,否则你将始终得到元素 0、1 和 2。喜欢:
<li><input type="checkbox" name="language[<?php echo $i; ?>]"...
从循环中生成相似的标签可以更轻松地维护代码和查找错误;有时您将不得不这样做,因为内容来自数据库。所以不,这不是坏习惯。
我无法在刷新后选中正确的复选框。我看过其他问题,但似乎没有人处理这个复选框是从 for 循环生成的问题(至少我找不到任何东西)。
当我选中一些复选框时,3 个随机复选框,刷新时我有 3 个选中的复选框。然而,这些总是前 3 个,而不是我检查过的确切的。
显然我的代码存在一些我应该解决的问题,但这也让我提出了另一个问题。通过循环生成元素是不好的做法吗?我认为它更好,因为它避免了或多或少重复的行
$numberOfLanguages = count($languageOptions);
for ($i = 0; $i < $numberOfLanguages; $i++) {
$check = '';
if (empty($_POST['language'][$i])) {
$check = '';
}
if (!empty($_POST['language'][$i])) {
$check = 'checked';
}
?>
<li><input type="checkbox" name="language[]" value=" <?php echo $languageOptions[$i] ?>" <?php if($check == 'checked'): ?>checked="checked"<?php endif; ?> /><?php echo $languageOptions[$i] ?></li>
<?php
}
你也必须在输入标签的名称中包含行号,否则你将始终得到元素 0、1 和 2。喜欢:
<li><input type="checkbox" name="language[<?php echo $i; ?>]"...
从循环中生成相似的标签可以更轻松地维护代码和查找错误;有时您将不得不这样做,因为内容来自数据库。所以不,这不是坏习惯。