以HTML格式审核表单

时间:2013-01-29 18:30:26

标签: php html mysql forms blob

我希望我不会发一个重复的问题,但我已经环顾四周(并用Google搜索了!)并没有给我任何我正在寻找的答案。

我有一个HTML格式的表单。当用户提交表单时,值将以mysql存储在其站点的用户帐户下。

问题是,我希望用户能够随时返回并编辑表单。

当用户查看表单时,我当然可以使用php中的值填充表单,但是当我尝试填充文件输入字段(并且使用blob类型将文件保存在mysql中)时,它会变得棘手。更不用说我想尽可能干净地做到这一点。

理想情况下,如果有一个方便的模块来审查已经在JQuery中提交的表单,那将是很好的。

有人可以提供任何建议吗?提前谢谢!

编辑: 这是我的意思的一个很好的例子 - 在chrome中如果我填写表单并在点击提交后重定向到下一页,如果我回击我回到表单并且它仍然填写了我之前输入的信息!我可以随时调用此行为,而不是仅在用户回击时调用此行为吗?

3 个答案:

答案 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']); ?>