2017-04-15 3 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をデバッグするのは難しいのです。なぜなら、すべてが1行にあるからです(つまり、ライブ形式で)。 –

+0

どのような種類のエラーを指定できますか?どのように対処するのですか? @KIKOSoftware –

答えて

0

SOLUTION:

すべてこの混乱と終わりに問題が私のjavascriptの変数の一つは、代わりに「テーマ」の「ctheme」とスペルミスされたということでした。

「$ body」の代わりに「$$ body」と入力したため空白のメールの問題が解決されました。

はとにかく、一人一人の助けに感謝は、特に

P.Sを@KIKOSoftware:私はプログラミングの世界にその歓迎を推測します。

0

[OK]を、私はそれがラジオボタンでなければならないと思います。

あなたはこのような彼らの値を取得する:

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

私はこれをテストしていません...しかし、あなたがしようとすることは容易です。

関連する問題