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

时间:2015-03-20 13:34:39

标签: javascript php jquery html html5

我有一个简单的html表单,正如您在下面看到的那样,已预先填充了信息,例如用途。

Example form

目前,当您点击提交时,表单将保存到Google文档,该文档可以正常运行。

但是我还希望将日志/保存表单输出到托管页面的服务器上的文本文件。

示例预填充表格:http://jsfiddle.net/owcnwfhp/

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

预期输出示例:

3/18/2015 8:06:27   testname    test4   test2   test3   test4   test5   test6   test7   test8   test9   test10
3/18/2015 8:07:07   testname1   test4   test4   test3   test4   test5   test6   test7   test8   test9   test10
3/18/2015 8:08:01   testname2   test2   test2   test3   test4   test5   test6   test7   test8   test9   test10
3/18/2015 8:09:41   testname3   test2   test5   test3   test4   test1   test6   test7   test8   test9   test10

分隔字符必须是 ASCII制表符

我需要能够记录/保存队列本身,以便如果两个人一次使用该表单,则表示没有冲突,只有一个表单提交被记录/保存。

我认为 捕获/记录/保存表单的最佳位置将在下面的函数的开头,一旦表单提交到Google文档。

function breakRedirect() {
    $('#container').replaceWith('<div id="complete">Completed</div>');
};

到目前为止的功能......

这就是我到目前为止,它的格式正确(确定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>');
};

更新了小提琴:http://jsfiddle.net/owcnwfhp/1/

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

的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(),

来源:jQuery website - .ajax()Stackoverflow - Submit a form using jQuery

PHP

file_get_contents()AND $ _POST []


然后,您可以使用$ _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);
?>

来源:PHP Website - File put contents