我希望我不会发一个重复的问题,但我已经环顾四周(并用Google搜索了!)并没有给我任何我正在寻找的答案。
我有一个HTML格式的表单。当用户提交表单时,值将以mysql存储在其站点的用户帐户下。
问题是,我希望用户能够随时返回并编辑表单。
当用户查看表单时,我当然可以使用php中的值填充表单,但是当我尝试填充文件输入字段(并且使用blob类型将文件保存在mysql中)时,它会变得棘手。更不用说我想尽可能干净地做到这一点。
理想情况下,如果有一个方便的模块来审查已经在JQuery中提交的表单,那将是很好的。
有人可以提供任何建议吗?提前谢谢!
编辑: 这是我的意思的一个很好的例子 - 在chrome中如果我填写表单并在点击提交后重定向到下一页,如果我回击我回到表单并且它仍然填写了我之前输入的信息!我可以随时调用此行为,而不是仅在用户回击时调用此行为吗?
答案 0 :(得分:1)
您无法预先填写<input type="file"
。 。但肯定当他们回到表格时,他们想看到他们上传的文件..这就是你的意思吧..
因此,如果是图片,您可以这样做:<img src="loadpic.php?id=$var" />
如果是他们上传的文件,只需在某种列表中列出文件名/日期和其他数据等。
然后你仍然可以显示<input type="file">
..但是有标签,'添加更多图片'或'添加其他文件'。 .etc
答案 1 :(得分:0)
除非有人有更好的方法,否则目前我正在使用两件事的组合:
1)使用$ _SESSION变量 2)将表单中每个输入的“name”属性设置为它在数据库中对应的字段的名称。
这样我可以动态循环遍历所有值,而不是将它们全部硬编码。一些输入类型(如文件)是例外的,将自行处理。其他我可以这样做的事情:
要插入mysql:
$fields = array();
$values = array();
foreach ($_POST as $field => $value) {
$fields[] = $field;
$values[] = addslashes($value);
}
$fieldString = 'Table_Name('.implode(', ', $aFields).')';
$valueString = "VALUES('".implode("', '", $aValues)."')";
mysql_query("INSERT INTO $fieldString $valueString");
查看表单有点类似。我正在使用javascript挂钩到document.onload。我需要从mysql传递javascript记录,以便它可以填充表单。然后,通过名称获取元素并为它们分配从php传递的值,这是一个简单的问题。
答案 2 :(得分:-1)
最简单的方法是将值存储在会话中,而不必返回数据库。
<?php $_SESSION['myvalue'] = $inputvalue; ?>
在html表单上使用:
<input type="text" name="myName" value="<?php echo $_SESSION['inputvalue']; ?>" />
完成后不要忘记取消设置会话变量:
<?php session_start(); unset($_SESSION['myvalue']); ?>