2017-02-20 7 views
1

私は、電子メールと共に送信されるフォームに選択したhtmlアイテムを追加しようとしています。選択リストから値を正しく取得してPHPに渡す方法を知りたいです。私はそれを正確に把握することができませんでした。私は助けていただければ幸いです。以下はPHPの連絡フォームに選択リストを追加する方法

function _(id){ return document.getElementById(id); } 
function submitForm(){ 
    _("contact-submit").disabled = true; 
    _("status").innerHTML = 'please wait ...'; 
    var formdata = new FormData(); 
    formdata.append("n", _("n").value); 
    formdata.append("e", _("e").value); 
    formdata.append("t", _("t").value); 
    formdata.append("w", _("w").value); 
    formdata.append("m", _("m").value); 

    var ajax = new XMLHttpRequest(); 
    ajax.open("POST", "contact.php"); 
    ajax.onreadystatechange = function() { 
     if(ajax.readyState == 4 && ajax.status == 200) { 
      if(ajax.responseText == "success"){ 
       _("contact-form").innerHTML = '<h2 class="tnx">Thanks '+_("n").value+', we will be in touch soon!</h2>'; 
      } else { 
       _("status").innerHTML = ajax.responseText; 
       _("contact-submit").disabled = false; 
      } 
     } 
    } 
    ajax.send(formdata); 
} 

HTML

<div class="cat-select"> 
        <label class="cat-selects" for="subject"><span>Area of Interest</span> 
          <select name="subject" class="select-field" id="s"> 
          <option value="General Inquiry">General Inquiry</option> 
          <option value="Elderly Care">Elderly Care</option> 
          <option value="Child Care">Child Care</option> 
          </select> 
         </label> 
       </div> 

PHP

 <?php 
    if(isset($_POST['n']) && isset($_POST['e']) && isset($_POST['t']) && isset($_POST['w']) && isset($_POST['m'])){ 
     $n = $_POST['n']; // HINT: use preg_replace() to filter the data 
     $e = $_POST['e']; 
     $t = $_POST['t']; 
     $w = $_POST['w']; 

     $m = nl2br($_POST['m']); 
     $to = "[email protected]";  
     $from = $e; 
     $subject = 'Contact Form Message'; 
     $message = '<b>Name:</b> '.$n.' <br><b>Email:</b> '.$e.' <p>'.$s.' '.$m.'</p>'; 
     $headers = "From: $from\n"; 
     $headers .= "MIME-Version: 1.0\n"; 
     $headers .= "Content-type: text/html; charset=iso-8859-1\n"; 
     if(mail($to, $subject, $message, $headers)){ 
      echo "success"; 
     } else { 
      echo "The server failed to send the message. Please try again later."; 
     } 
    } 
    ?> 
+0

あなたの問題が何であるか、何をしようとしているのかは分かりません。選択ボックスを参照するコードはどこにも表示されません。 –

+0

PHPとJavascriptファイルの選択ボックスを正しく追加する方法を知りたい@MagnusEriksson –

+0

「選択ボックスを追加する」という意味が明確ではありません。コピー/貼り付けを試しましたか?または、選択した値を取得してPHPコードに渡すことについて話していますか?あなたは、あなたの質問を書き直し、あなたがしようとしていること、実際の問題が何であるか、これまでに試したことを明確にする必要があります。 –

答えて

0

...私のコードは、あなたの<select>要素のidは "S" ですが、あなたはjavascriptがどこでもそれを参照していません。 _()関数がidを参照していると仮定すると、同様の行で次の行を追加する必要があります。

formdata.append("s", _("s").value); 

これにより、$_POST['s']をPHP側で使用できるようにする必要があります。

すべて電子メールのサイトまたは受信者を悪用しようとする試みを避けるために、テキスト入力とテキストエリアだけでなく、このフォームを介して送信されるフィールドをエスケープするために何かをすることを忘れないでください。

関連する問題