2017-04-15 73 views
1

所以我有一個通過jQuery AJAX提交的表單,並且大約18個參數被傳遞給一個php文件。現在每當我嘗試提交表單時,都會用這麼多參數來達到堆棧限制。但是,當我像爭論的一半中斷時,表單工作正常並收到了電子郵件。但我收到的電子郵件沒有任何內容。jQuery AJAX在18個參數上達到內存棧限制

AJAX:

$.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:[email protected]'>EMAIL</a></p>"); 
        window.scrollTo(0, 100); 
       }); 

php腳本是:

<?php 

if (isset($_POST['name']) && $_POST['name'] != "") { 

    $to = "[email protected]"; 
    $subject = "Website Order Request"; 
    $headers = "From: <".$_POST['email'].">\r\n"; 
    $headers .= "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
    $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

+0

AJAX POST值沒有設置限制。也許還有另一個問題?你可以看看這個線程,看看你是否找到一些東西:http://stackoverflow.com/questions/20249587/is-it-any-limit-for-post-data-size-in-ajax – junkfoodjunkie

+0

我其實已經測試了你的表單,並在控制檯中得到了這個javascript錯誤:「TypeError:'stepUp'對一個沒有實現接口HTMLInputElement的對象調用。」調試你的javascript是很困難的,因爲它全部在一行上(在現場表單中)。 –

+0

你能指定那種錯誤嗎?以及如何處理它? @KIKOSoftware –

回答

0

SOLUTION:

這一切混亂,最後的問題是,在我的javascript的一個變量被拼錯爲「ctheme」而不是「主題」。

而空白的電子郵件問題已解決,因爲我輸入'$$ body'而不是'$ body'。

不管怎麼說,感謝每一個幫助,尤其是@KIKOSoftware

P.S:我想它的一個值得歡迎的編程世界。

0

好吧,我想那一定是單選按鈕。

你得到的價值是這樣的:

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(); 

我沒有測試過這...但它很容易讓你去嘗試。