我一直试图解决这个问题。这是很久以前从别人那里写的代码,现在我被要求添加一些新功能。 简而言之,有一个表单提交给mysql db并生成带有填充字段的pdf。 有可能返回并编辑表单并重新创建pdf。
我的任务是在表单中添加两个复选框。一切都很好,复选框值被发送到数据库,并创建pdf文件,选中或取消选中复选框。
然而,当我返回编辑表单时,复选框始终未选中,它不会从数据库中获取值。
因此填写表单的现有代码如下所示。我看到有文字,textarea和选择......我怎么能在这里添加复选框? 谢谢您的帮助!
function fillEoi($eoiFile, $oldPost="NULL") {
if (is_array($oldPost) && count($oldPost)>2) {
$handle = fopen($eoiFile, "r");
$contents = fread($handle, filesize ($eoiFile));
fclose ($handle);
$tempName = tempnam("/tmp", "FOO");
$handle = fopen($tempName ,"w");
$fileContent=explode("\n",$contents);
foreach ($fileContent as $key => $item) {
//Get fieldname;
unset($fieldName);
$fieldName=strrev(stristr(str_replace("/", "\/", $item),"DB_"));
$fieldName=strrev(substr(strrchr($fieldName,"'"),1));
// If is an input field
if (stripos($item, "type='text'") && stripos($item, $fieldName)) {
//if (stristr($item, $fieldName))
// $valueAdd=" value='".$oldPost[$fieldName]."'";
$oldPost[$fieldName] = (strpos($item,'DB_INSUREDVALUE')) ? showValue($oldPost[$fieldName]) : $oldPost[$fieldName];
$item=str_replace($fieldName, $fieldName."' value='".$oldPost[$fieldName]."",$item);
} elseif (stripos($item, "</textarea>") && stripos($item, $fieldName)) {
// If is an Textarea
$item=str_replace("</textarea>", $oldPost[$fieldName]."</textarea>" , $item);
} elseif ((stripos($item, $fieldName) && stripos($item, "<select"))) /* or $selectField==1)*/ {
$returnVar['EoiDate'][$fieldName]=$oldPost[$fieldName];
}
}
$fileContent[$key]=$item;
}
$newContent=implode("\n",$fileContent);
fwrite ($handle, $newContent);
fclose($handle);
$newEoiFile=$tempName;
unset($eoiFile);
} else {
$newEoiFile=$eoiFile;
}
$returnVar['EoiPath']=$newEoiFile;
return $returnVar;
}
答案 0 :(得分:0)
您可以使用checked属性
设置要检查的复选框元素// Get the checkbox state from db, I assume here it is checked
$checked = 1;
if ($checked) {
echo '<input type="checkbox" name="DB_KGS" checked="checked">';
} else {
echo '<input type="checkbox" name="DB_KGS">';
}