【问题标题】:How to send form data to CSV如何将表单数据发送到 CSV
【发布时间】:2013-05-01 08:54:33
【问题描述】:

我有来自客户的特定请求,要求将简报注册发送到 CSV 文件。对于任何后端,我都是菜鸟,更不用说前端开发了。

我有一个正在使用的模板,但无法理解它传递价值的方式。

表单代码很简单

<form action="" method="post" class="signup" id="newsletter-form">
    <p>
        <input type="text" name="signup_name" id="signup_name" class="required" value="Your Name" />
    </p>
    <p>
        <input type="text" name="signup_email" id="signup_email" class="required" value="Your E-mail" />
    </p>
    <input type="submit" value="SEND" class="signupSubmit" id="submitform" />
    <div id="newsletter-msg-wrapper" style="position:relative; clear:both; width:100%;">
        <div id="newsletter-loader"></div> <span id="newsletter-msg"> &nbsp; </span>

    </div>
</form>

然后我有这个似乎正在处理帖子的 .js 文件

$(document).ready(function () {
    var contactFormDefaults = new Array();
    contactFormDefaults['name'] = 'Your Name';
    contactFormDefaults['email'] = 'E-mail';
    contactFormDefaults['subject'] = 'Subject';
    contactFormDefaults['message'] = 'Message';
    contactFormDefaults['msg'] = $('.contactForm span#msg').html();

    $('.contactForm input[type="text"], .contactForm textarea').focus(function () {
        $(this).addClass('inputHighlight').removeClass('errorOutline');
        if ($(this).hasClass('required')) {
            $('.contactForm span#msg').html('This is a required field.').removeClass('errorMsg successMsg');
        } else {
            $('.contactForm span#msg').html(contactFormDefaults['msg']).removeClass('errorMsg successMsg');
        }
        if ($(this).val() == contactFormDefaults[$(this).attr('id')]) {
            $(this).val('');
        }
    });
    $('.contactForm input[type="text"], .contactForm textarea').blur(function () {
        $(this).removeClass('inputHighlight');
        $('.contactForm span#msg').html(contactFormDefaults['msg']).removeClass('errorMsg successMsg');
        if ($(this).val() == '') {
            $(this).val(contactFormDefaults[$(this).attr('id')]);
        }
    });

    $('.contactForm input[type="text"], .contactForm textarea').hover(function () {
        $(this).addClass('inputHighlight');
    }, function () {
        $(this).not(':focus').removeClass('inputHighlight');
    });

    $('.contactForm').submit(function () {
        $('.contactForm .submit').attr("disabled", "disabled");
        $('#msg').html('<img src="images/loader-light.gif" />').removeClass('errorMsg successMsg');
        var isError = false;
        $('.contactForm input, .contactForm textarea').each(function () {
            if ($(this).hasClass('required') && ($.trim($(this).val()) == contactFormDefaults[$(this).attr('id')] || $.trim($(this).val()) == '')) {
                $(this).addClass('errorOutline');
                $('#msg').html('There was an error sending your message. Please try again.').addClass('errorMsg');
                isError = true;
            }
            if ($(this).attr('id') == 'email') {
                var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
                if (reg.test($(this).val()) == false) {
                    $(this).addClass('errorOutline');
                    if (!isError) {
                        $('#msg').html('Please enter a valid e-mail address and try again.').addClass('errorMsg');
                    }
                    isError = true;
                }
            }
        });
        if (isError) {
            $('.contactForm .submit').removeAttr("disabled");
            return false;
        } else {
            var name = $('#name').val(),
                email = $('#email').val(),
                subject = $('#subject').val(),
                message = $('#message').val();
            $.ajaxSetup({
                cache: false
            });
            var dataString = 'name=' + name + '&email=' + email + '&subject=' + subject + '&message=' + message + '&ajax=1';
            $.ajax({
                type: "POST",
                url: "../myform.php",
                data: dataString,
                success: function (msg) {
                    // Check to see if the mail was successfully sent
                    if (msg == 'Mail sent') {
                        // Update the progress bar
                        $('#msg').html('Message sent.').addClass('successMsg');
                        // Reset the subject field and message textbox
                        if (contactFormDefaults['subject']) {
                            $('#subject').val(contactFormDefaults['subject']);
                        } else {
                            $('#subject').val('');
                        }
                        if (contactFormDefaults['message']) {
                            $('#message').val(contactFormDefaults['message']);
                        } else {
                            $('#message').val('');
                        }
                    } else {
                        $('#msg').html('There was an error sending your email. Please try again.').addClass('errorMsg');
                        $('.contactForm .submit').attr("disabled", "");
                    }
                    // Activate the submit button
                    $('.contactForm .submit').removeAttr("disabled");
                },
                error: function (ob, errStr) {
                    $('#msg').html('There was an error sending your email. Please try again.').addClass('errorMsg');
                    //Activate the submit button
                    $('.contactForm .submit').removeAttr("disabled");
                }
            });
            return false;
        }
    });
});

如果可能的话,我很想知道如何让这一切发挥作用,我在这里没有看到什么,以及如何将这一切写入 CSV 文件。

可以在此处查看站点和代码的完整视图:

www.cndnsd.com/ClientAccess/Newmarket/FinalSite/index.html

表单位于页面底部。

【问题讨论】:

  • “并且无法理解它传递价值的方式。”:请更具体地说明您想了解的内容。我认为没有人会穿过那堵代码墙并解释每一行。总的来说,这个问题可能过于宽泛。我们不会为您实现此功能。
  • 如果他们要订阅时事通讯,那么数据必须存储在某个地方!即数据库。要创建 csv,请查询数据库并使用 fputcsv() 循环遍历记录以创建文件,或者只需将数据以正确的标题输出到屏幕,因此它变成了强制下载(在需要时生成)。
  • @Waygood:我认为关键是将数据存储在 CSV 文件中,而不是数据库中。用户填写表格 -> 数据发送到服务器 -> 数据存储在 CSV 文件中。
  • 在这种情况下,使用fopen('file with path', 'a') 打开 csv 以附加到它的末尾,然后 fputcsv() 新数据(确保您对文件夹和文件具有写入权限)

标签: php javascript forms csv


【解决方案1】:

在您的 myform.php 中,接收所有数据(电子邮件、姓名等)并开始创建您的 CSV 文件。这是一个简单的操作,并不复杂。

对于 CSV 文件的写入,请查看这些关于堆栈溢出的帖子:

write into csv file in php

Creating csv file with php

也做一些谷歌搜索。

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2018-01-24
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多