通过jQuery/Javascript发布到php文件,将表单输出保存到文本文件?

通过jQuery/Javascript发布到php文件,将表单输出保存到文本文件?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个简单的html表单,正如您在下面看到的,它已经预先填充了一些信息,用于示例目的 当前,当您单击提交时,表单将保存到谷歌文档中,该文档工作正常 但是我还希望它将表单输出记录/保存到页面所在服务器上的文本文件中 预填表格示例: 我希望记录/保存的格式如下所示,每一行都是一个新的表单提交 预期产出示例: 分隔字符必须是ASCII制表符 我需要能够使日志记录/保存队列本身,这样,如果两个人同时使用表单,就不会发生冲突,并且只有一个表单提交被记录/保存 我认为捕获/记录/保存表单的最佳位置是在表

我有一个简单的html表单,正如您在下面看到的,它已经预先填充了一些信息,用于示例目的

当前,当您单击提交时,表单将保存到谷歌文档中,该文档工作正常

但是我还希望它将表单输出记录/保存到页面所在服务器上的文本文件中

预填表格示例: 我希望记录/保存的格式如下所示,每一行都是一个新的表单提交

预期产出示例: 分隔字符必须是ASCII制表符

我需要能够使日志记录/保存队列本身,这样,如果两个人同时使用表单,就不会发生冲突,并且只有一个表单提交被记录/保存

我认为捕获/记录/保存表单的最佳位置是在表单提交到Google docs后触发的下面函数的开头

function breakRedirect() {
    $('#container').replaceWith('<div id="complete">Completed</div>');
};
函数breakRedirect(){
$(“#容器”)。替换为('Completed');
};
功能到目前为止。。。 这就是我到目前为止所拥有的,它的格式是正确的(当然javascript/jquery可能有点错误,但它可以工作),我现在需要找到一种方法,能够将它发布到php脚本?以便它排队并写入文件

function breakRedirect() {

    var month = new Array();
        month[0] = "01"; month[1] = "02"; month[2] = "03"; month[3] = "04"; month[4] = "05"; month[5] = "06"; month[6] = "07"; month[7] = "08"; month[8] = "09"; month[9] = "10"; month[10] = "11"; month[11] = "12";
    var collection = new Date().getDate() + "/" + month[new Date().getMonth()] + "/" + new Date().getFullYear() + " "+ new Date().getHours() + ":" + new Date().getMinutes() + ":" + new Date().getSeconds();

    var $inputs = $("input")
    $inputs.each(function () {
        var value = this.value;
        if (value != "Submit Selections" && value != "Clear Selections") {
            collection += "\t" + value
        };
    });

    var $selects = $("select")
    $selects.each(function () {
        var value = this.value;
        collection += "\t" + value
    });

    console.log(collection);

    $('#container').replaceWith('<div id="complete">Completed</div>');
};
函数breakRedirect(){
var month=新数组();
月[0]=“01”;月[1]=“02”;月[2]=“03”;月[3]=“04”;月[4]=“05”;月[5]=“06”;月[6]=“07”;月[7]=“08”;月[8]=“09”;月[9]=“10”;月[10]=“11”;月[11]=“12”;
var collection=new Date().getDate()+“/”+月[新日期().getMonth()]+“/”+新日期().getFullYear()+“+新日期().getHours()+”:“+新日期().getMinutes()+”:“+新日期().getSeconds();
变量$inputs=$(“输入”)
$inputs.每个(函数(){
var值=此值;
如果(值!=“提交选择”&&值!=“清除选择”){
集合+=“\t”+值
};
});
变量$selects=$(“选择”)
$selects.each(函数(){
var值=此值;
集合+=“\t”+值
});
控制台日志(收集);
$(“#容器”)。替换为('Completed');
};
更新小提琴: 有什么想法吗?

jQuery $.ajax()


您可以使用jQuery.ajax函数发布文章。请参见下面的示例

$.ajax({
      method: "POST",
      url: "some.php",
      data: { name: "John", location: "Boston" }
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
对于数据属性,可以使用:

data: $('form#myForm').serialize(),
资料来源:

PHP 文件获取内容()和$发布[]


然后,可以使用$\u POST变量获取PHP文件中的值,并将其写入文件

获取值

// WARNING! You should do some valiadation before writing to the file!
<?php
   $name = $_POST["name"];
   $location = $_POST["location"];
   $new_line = $name . "your tab ascii code" . $location . "\n";
   $file = 'people.txt';

   // Open the file to get existing content
      $current = file_get_contents($file);

   // Append a new person to the file
      $current .= $new_line;

   // Write the contents back to the file
      file_put_contents($file, $current);
?>
//警告!您应该在写入文件之前进行一些验证!

来源:

但这不需要它自己的形式吗。。。请记住,我正在向谷歌文档提交一篇文章,我想要一篇辅助文章,这样我就可以将数据保存在我的服务器上。否。您可以使用相同的表单。首先使用AJAX提交表单。您的页面将不会被重新加载。然后,像往常一样发送您的表格。您可以使用jquery.submit()实现这一点。那么我当然也可以这样做:
data:{data:collection}
,因为我已经修改了字符串。。。它不需要精确到足以记录的程度。很抱歉你说得对!只要字符串不破坏JSON格式,就可以执行:data:{data:collection}->。。。
// WARNING! You should do some valiadation before writing to the file!
<?php
   $name = $_POST["name"];
   $location = $_POST["location"];
   $new_line = $name . "your tab ascii code" . $location . "\n";
   $file = 'people.txt';

   // Open the file to get existing content
      $current = file_get_contents($file);

   // Append a new person to the file
      $current .= $new_line;

   // Write the contents back to the file
      file_put_contents($file, $current);
?>