2017-10-06 15 views
1

jqueryモバイルサイトを構築しています。ここにフォームを投稿してサイトをホームページにリダイレクトするための素晴らしいjavascriptがあります。私が持っている問題は、フォームに入っているにもかかわらず、送信された電子メールに挨拶が表示されず、「Mr」ボタンの下矢印がクリックされると「MR」と表示されるドロップダウンリストとしてサイトに表示されます。以下は、javascriptとフォームです。どんな援助も感謝して受け取ります。フォームでの挨拶のためのjavascript

JAVASCRIPT

<script type="text/javascript"> 
    function setReqObj() { 
    var nAjax; 
    if(window.XMLHttpRequest) { 
    nAjax = new XMLHttpRequest(); 
    } else { 
    nAjax = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    return nAjax; 
} 

function _SubmitForm() { 
    var xmlhttp = setReqObj(); 

    if(xmlhttp) { 
    xmlhttp.onreadystatechange=function() { 
     if(xmlhttp.readyState == 4) { 
     document.forms["contact-form"].reset(); 

     $responseText = xmlhttp.responseText; 
     alert("Your query has been successfully submitted!"); 
     document.location.href = "#home"; 
    } 
    } 



    var $validEmail = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
    var $name = document.forms["contact-form"]["Full_Name"].value; 
    var $comments = encodeURIComponent(document.forms["contact-form"]["Query"].value); 
    var $name2 = document.forms["contact-form"]["Phone"].value; 
    var $email = document.forms["contact-form"]["Email"].value; 


if($name == "") { 
     alert("Please enter a valid name!"); 
     return false; 
    } 

    if($comments.length <= 4) { 
     alert("Please enter a valid comment!"); 
     return false; 
    } 
    if($name2 == "") { 
     alert("Please enter a valid phone number!"); 
     return false; 
    } 
    if(!$email.match($validEmail)) { 
     alert("Please enter a valid email address!"); 
     return false; 
    } 

    var $ajData = "Full_Name=" + $name + "&Query=" + $comments + "&Phone=" + $name2 + "&Email=" + $email; 

    xmlhttp.open("POST", "http://www.test.uk.com/cgi-bin/cgiemail/emailform2.txt", true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send($ajData); 
    } else { 
    document.forms["contact-form"].submit(); 
    } 
} 
</script> 

FORM

<fieldset data-role="ui-field-contain"> 
    <div class="controlgroup"> 
    <legend>Enquiry Form</legend><br> 
    <select name="salutation" id="salutation" > 
     <option value="Mr">Mr</option> 
     <option value="Mrs">Mrs</option> 
     <option value="Ms">Ms</option> 
     <option value="Miss">Miss</option> 
    </select> 



    <br> 
    <label for="fullname">Full name:</label> 
    <input type="text" name="Full_Name" id="fullname" /> 

    <label for="query">Query:</label> 
    <textarea name="Query" id="query"></textarea> 

    <label for="phone">Phone Numbers:</label> 
    <textarea name="Phone" id="phone" ></textarea> 

    <label for="email">Email:</label> 
    <input type="text" name="Email" id="email" /> 
    </div> 
    </fieldset> 

- >

</form> 

多くのおかげで、 Ruwak

答えて

1

あなたはあなたのフォームから挨拶の価値を拾っていません。私はそれがあなたの電子メールにはない理由だと思います。まず、挨拶の値を選ぶ:

var $salutation = document.forms["contact-form"]["salutation"].value; 

を今、あなたはAJAXを通じて送信されたデータには、この値を追加します。

var $ajData = "Salutation=" + $salutation + "&Full_Name=" + $name + "&Query=" + $comments + "&Phone=" + $name2 + "&Email=" + $email; 

を今、あなたはあなたのサーバー上でSalutationの値を取得する必要があります。それでも、サーバー側でも、送信された電子メールにこの値を追加していることを確認する必要があります。

+0

こんにちは、両方のお返事のおかげで、残念なことにそれらのどれも働いた。私はそれらを間違った場所に配置している可能性があります。残りの電子メール、つまり名前、電子メールなどのために、他のvarコードの上に置いていますが、無駄です。 の名前を大文字のSで敬称に変更しましたが、これが変更になったかどうかわかりません。 へ:[email protected] 件名:QUERY2 敬称 – Ruak

+0

以下は、サーバー上のQUERY2テキストがありますか? [挨拶] [Mr] [Mr] [Ms] [Miss] フルネーム? [Full_Name] クエリ? [クエリ] 電話番号? [電話] メール? [メール] – Ruak

+0

申し訳ありません!最後にそれを動作させてくれました。それは私でした。「var $ ajData」行を追加したときに、元のファイルを削除するのを忘れました。 – Ruak

関連する問題