2010-10-29 68 views
0

我有一个文档字段,它工作良好。现在的问题是每当用户输入一些新的文本。我需要格式为(dd.mm.yy)的日期,该日期应该与时间戳一起自动附加到日期中。带有日期的文本

例如,当用户第一次输入“生产问题”时。然后点击保存,那么它应该显示为 19.10.10 16:39“生产问题”。

之后,如果别人改变字段,并添加“在开发阶段”。

它应该是19.10.10 18:39“生产问题”,29.10.10 16:59“在开发阶段”。

使用表格时,我无法跟踪新添加的文本。因为我将在后期变量中获得完整的文本。

我发现了一个肮脏的窍门,在保存文本后放置了一些奇怪的字符。现在在我的post变量中,我将能够区分旧文本和新添加的内容。将当前时间戳添加到新添加的时间戳。

我会很高兴,如果有人可以建议我一个更好的程序。

在此先感谢!

+1

请分享您的代码。 – kovshenin 2010-10-29 14:51:28

+0

你保存在MySQL数据库? – Gordon 2010-10-29 15:19:45

+0

对于迟到的评论。我正在保存在SQL Server中。 – satya 2010-11-02 07:19:16

回答

1

关闭顶部我头两个选择:

(一)随着JS - 改变触发

上触发设置在隐藏的表单字段中的值的文本字段一些JavaScript。这个字段被发回到PHP,所以它知道文本字段可能已经改变(仍然不能分辨用户是否改变了它,然后改变了它)。

例如。 JS触发字段更改。

<input type="text" name="textfield" 
    onChange="this.form["textfieldchanged"].value=1;" /> 
<input type="hidden" name="textfieldchanged" value="" /> 

(b)与PHP - 变化检测

在表单提交检查现场的当前版本与提交的版本,如果它的改变,那么存储的新版本。

例如。 PHP比较

if ($_REQUEST["textfield"]!=$current_textfield) { 
    //... 
} 

在这两种情况下,实际存储值时,现在只需从PHP中添加一个日期。

代码:最后一块PHP

function storeText($text) { 
    $date=Date(); 
    //Store $text+$date .. file, SQL, not sure what you're doing here. 
} 

你也可以使用文本时更新(而不是一个标志)JS设置一个日期上的隐藏字段。这具有以下优点:本地系统日期包含在表单提交中(特别是在用户处于不同时区时有帮助),但是当用户提交条目时,通过更改其当地时钟,用户可能会遇到缺点游戏。 ..想象有人希望看起来在别人面前添加了文本,他们可以将自己的时钟恢复 - 提交 - 将时钟设置为正确的时间并继续。

0

不知道我完全听懂 - 你可以在它默认的日期形式的隐藏字段 - 这将被提交到一个单独的变量后...

<form> 
<input type='text' name='textfieldforcomments' /> 
<input type='hidden' name='datetracker' value='".date("d.m.y h.i")."'/> 
</form> 
+0

感谢您的回复。为此,我甚至不需要隐藏的领域。我可以将日期添加到文本列。但我需要文本第一次添加时的日期+文本+下一次更新+新文本+下一次更新+文本。请看例子一次。 – satya 2010-11-09 15:57:49