0

我希望我没有发布重复的问题,但我环顾四周(也用谷歌搜索了!),没有任何东西给我我正在寻找的答案。

我有一个 HTML 表单。当用户提交表单时,值将与 mysql 一起存储在他们的站点用户帐户下。

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

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

理想情况下,如果有一个方便的模块来审查已经在 J​​Query 中提交的表单,那就太好了。

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

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

4

3 回答 3

1

您不能预先归档<input type="file" . . 但是当他们回到表单时,他们肯定想看到他们上传的文件..这就是你的意思..

所以如果它是一张图片,你可以这样做:<img src="loadpic.php?id=$var" />

如果是他们上传的文件,只需在某种列表中列出文件名/日期和其他数据......等。

然后你仍然可以显示<input type="file">.. 但带有标签“添加更多图片”或“添加另一个文件”。。ETC

于 2013-01-29T18:40:08.163 回答
0

除非有人有更好的方法,目前我正在使用两件事的组合:

1) 利用 $_SESSION 变量 2) 将表单中每个输入的“名称”属性设置为它在数据库中对应的字段的名称。

通过这种方式,我可以动态循环遍历所有值,而不是将它们全部硬编码。某些输入类型(如文件)是例外的,将自行处理。其他我可以做这样的事情:

插入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.ini 传递的值是一件简单的事情。

于 2013-01-29T21:31:59.620 回答
-1

最简单且不必返回数据库的方法是将值存储在会话中。

<?php $_SESSION['myvalue'] = $inputvalue; ?> 

在 html 表单上使用:

<input type="text" name="myName" value="<?php echo $_SESSION['inputvalue']; ?>" />

完成后不要忘记取消设置会话变量:

<?php session_start(); unset($_SESSION['myvalue']); ?> 
于 2013-01-29T18:47:47.897 回答