チェックボックスがあり、可変構造を制御できるようにしたいのですが、0は構造なし、1は構造です。また、現在の値を出力して、構造がチェックされているかどうかをユーザーが確認できるようにします。チェックボックスは「チェックされていない」値を投稿しないことに気づき、私はすでに多くのことを試しました。私の論理がどこに欠陥があるのかわかりません。
<input name="construction" type="checkbox" id="construction" onChange="this.form.submit();" <?php if ($row_config['construction'] == 1) { echo ' checked'; } else { echo ' unchecked'; } ?>>
<?php
if ($_POST) {
// 0 = off
// 1 = on
$constr = (isset($_POST['construction']) && $_POST['construction'] == "on") ? 1 : 0;
mysql_query("UPDATE config SET construction = '$constr'") or die(mysql_error());
redirect('index.php');
}
?>
ユーザーへのデータ出力に問題があると思います。
修正版、みんなありがとう!
<?php
require('framework/ui_framework.php');
page_protect();
$config = mysql_query("SELECT construction FROM config") or die(mysql_error());
$row_config = mysql_fetch_assoc($config);
$isChecked = false;
$constr = 0;
if(isset($_POST['construction'])){
if($_POST['construction']) {
$isChecked = true;
$constr = 1;
mysql_query("UPDATE config SET construction = '".$constr."'") or die(mysql_error());
}
} else {
$isChecked = false;
$constr = 0;
mysql_query("UPDATE config SET construction = '".$constr."'") or die(mysql_error());
}
?>
<input name="construction" type="checkbox" id="construction" onChange="this.form.submit();" <?php if($isChecked) echo "checked='checked'"; ?> value="on">