我一直在尝试创建一个HTML表单来收集用户数据并将其记录到文本文件中。我在“store.php”中放置了什么,以便将日期/时间的日志和文本框内的内容写入名为“log”的目录内的文本文件中?
此外,一旦用户点击完成后,如何使用JS(或jQuery)隐藏整个表单,以防止他们再次提交表单,但仍允许他们查看页面的其余部分?
表单的现有HTML是:
<form method="post" action="store.php">
<input placeholder="Name" id="Name" type="text"/><br>
<input type="submit" value="Done"/>
</form>
答案 0 :(得分:2)
根据store.php中发生的情况,您必须使用PHP的文件系统函数(如fread(),file_get_contents(),file_put_contents()等),打开/创建文件,将数据写入其中,关闭并保存它
http://php.net/manual/en/ref.filesystem.php
对于JQuery部分,请查看表单事件。简单的例子:
$('#myForm').on('submit', function() {
$(this).hide();
}
或发布更多代码,我们可以为您提供更好的解决方案。
编辑: 这是我从一个旧项目中提取的函数:
function write_log( $error,$logtype="error" ) {
// get date and time for the log entry
$t = time();
$date = date('d/n/Y H:i:s', $t);
// prepare log string
$log = "#{$date} : {$error}<br>\n";
// decide what type of log to write to
$type = $logtype;
switch($logtype) {
case("error"):
$type = "errors";
break;
case("user"):
$type = "users";
break;
case("db"):
$type = "db";
break;
}
$log = trim( $log );
$filename = LOG_PATH."/{$type}_log.txt";
file_put_contents($filename, $log, FILE_APPEND | LOCK_EX );
}// end of function
它是一样的。第一个参数采用日志内容,第二个可选参数采用日志类型(或默认为“错误”)
希望有所帮助。
答案 1 :(得分:0)
您应该使用PHP fread
和fwrite
函数
为了隐藏表单,首先需要禁用表单默认操作,然后通过AJAX传递参数然后隐藏它。
$("#myForm").submit(function(e){
e.preventDefault();
$.ajax(...)
.done(function(){
$("#myForm").fadeOut();
});
});