这是我的问题:我有一个带复选框的html模板。当php脚本运行时,它会将一个值传递给复选框的“checked”属性,如下所示:
其中{SHOW_PRODUCTS}可以是'checked="true"'或'',具体取决于数据库列中的数据是1还是0.因此,换句话说,选中复选框,或者未经检查,根据从数据库传递的数据。
现在,由于这是编辑表单的模板,我需要收集“checked”属性的值并将其传递给数据库。但是,如果我取消选中在页面加载时自动检查的复选框并尝试保存更改,则脚本仍会将1写入数据库而不是0.如何更改此内容?
修改的
这些是处理数据的php部分:
else if (isset($_POST['edit']))
{
$form_data = $_POST['form_data'];
$present_id = $form_data['present_id'];
$present=new Present();
$present->load($present_id);
if (isValidForm())
{
$present->set($form_data);
$present->update();
}
else
{
$errors=$formValidator->getErrors();
$page_content_HTML=edit_form_HTML($form_data, $errors);
}
}
function set($data){
$keys=array_keys($data);
foreach($keys as $key)
{
$this->$key=$data[$key];
}
}
function update(){
global $db;
$date_from = format_datetime($this->date_from, "%Y.%m.%d. %H:%M:%S");
$date_to = format_datetime($this->date_to, "%Y.%m.%d. %H:%M:%S");
$sql="UPDATE presents SET present_name='".$this->present_name."', description='".$this->description."', present_image='".$this->present_image."', date_from='".$date_from."', date_to='".$date_to."', short_description='".$this->short_description."', show_products='".$this->show_products."' WHERE present_id='$this->present_id'";
$db->query($sql);
}