jQuery AJAX 在 18 个参数上达到内存堆栈限制



所以我有一个通过jQuery AJAX提交的表单,大约18个参数被传递给一个php文件。现在,每当我尝试提交表单时,都会达到这么多参数的堆栈限制。但是当我切断一半的论点时,表格工作正常,电子邮件被收到。但是我收到的电子邮件没有任何正文。

阿贾克斯:

$.ajax({
                    url: "sendemail.php",
                    method: "post",
                    data: {
                        name: name,
                        email: email,
                        number: number,
                        username: username,
                        country: country,
                        cname: cname,
                        ctype: ctype,
                        ctheme: ctheme,
                        domainname: domainname,
                        webhosting: webhosting,
                        seo: seo,
                        gadvertising: gadvertising,
                        cmarketing: cmarketing,
                        ptech: ptech,
                        details: details,
                        description: description
                    },
                    success: function () {
                        alert("Hey brotha");
                    }
                }).fail(function () {
                    $("#confdiv").html("<p class='alert alert-danger'>There was an error submitting your form. Please try again later or contact us at <a href='mailto:sobanr4@gmail.com'>EMAIL</a></p>");
                    window.scrollTo(0, 100);
                });

PHP 脚本是:

    <?php
if (isset($_POST['name']) && $_POST['name'] != "") {
    $to = "sobanr4@gmail.com";
    $subject = "Website Order Request";
    $headers = "From: <".$_POST['email'].">rn";
    $headers .= "MIME-Version: 1.0" . "rn";
    $headers .= "Content-type:text/html;charset=UTF-8" . "rn";
    $body = "<html>
    <head>
        <title>Order Request - ".$_POST['name']."</title>
    </head>
    <body>
        <p>NAME: ".$_POST['name']."</p>
        <p>EMAIL: ".$_POST['email']."</p>
        <p>NUMBER: ".$_POST['number']."</p>
        <p>USERNAME: ".$_POST['username']."</p>
        <p>COUNTRY: ".$_POST['country']."</p>
        <p>COMPANY NAME: ".$_POST['cname']."</p>
        <p>TYPE: ".$_POST['ctype']."</p>
        <p>THEME: ".$_POST['ctheme']."</p>
        <p>DOMAIN NAME: ".$_POST['domainname']."</p>
        <p>WEB HOSTING: ".$_POST['webhosting']."</p>
        <p>SEO: ".$_POST['seo']."</p>
        <p>GOOGLE ADVERTISING: ".$_POST['gadvertising']."</p>
        <p>CONTENT MARKETING: ".$_POST['cmarketing']."</p>
        <p>PERMANENT TECHNICIAN: ".$_POST['ptech']."</p>
        <br><br><br>
        <p>DETAILS: ".$_POST['details']."</p>
        <br><br><br>
        <p>DESCRIPTION: ".$_POST['description']."</p>
    </body>
    </html>";
    if (mail($to,$subject,$$body,$headers)) {
        echo 1;
    } else {
        echo 0;
    };
}
?>

表格可以在这里找到:http://www.henryspike.tk/testform

好的,我认为一定是单选按钮。

你得到它们的价值是这样的:

var seo = $("#seo").val();
var gadvertising = $("#gadvertising").val();
var cmarketing = $("#cmarketing").val();
var ptech = $("#ptech").val();

但它应该是这样的:

var seo = $("#seo:checked").val();
var gadvertising = $("#gadvertising:checked").val();
var cmarketing = $("#cmarketing:checked").val();
var ptech = $("#ptech:checked").val();

我还没有测试过这个...但你很容易尝试。

解决方案:

所有这些混乱,最终的问题是我的javascript中的一个变量被错误地拼写为"ctheme"而不是"theme"。

空白电子邮件问题已解决,因为我输入了"$$body"而不是"$body"。

无论如何,感谢每个人的帮助,尤其是@KIKOSoftware

PS:我想这是对编程世界的欢迎。

最新更新