2016-04-09 10 views
0

イメージをテキストファイルに変換する方法、etxを使ってフォームを送信する方法、phpファイルを送信する方法を理解しています。私はそれを私は私の他のデータをajaxとPHPの電子メールで持っているようにフォーマットしようとしていますが、フォームが私のajaxですぐに停止すると言うことができます。それは私のPHPにも送信されませんが、私も右のいずれかの電子メールの部分を持っているかわからない。フォームから電子メールにファイルを送信する

これはこれまで私が試したことです。私はできるだけ古いコードを削除しようとしましたが、やっていることに対して十分な感触を残しています。私は、このファイルは、電子メールの

$("#submit-project").on("click", function(event) { 
    // event.preventDefault(); 

     var project_name = $("#project-name").val(); 
     var project_email = $("#project-email").val(); 
     var project_number = $("#project-number").val(); 
     var uploaded_file = $("#file").val(); 
     submitHandler: function(form) { 
console.log(form); 
      $.ajax({ 
      url: "email-project.php", 
      type: "POST", 
      data: { 
       "project_name": project_name, 
       "project_email": project_email, 
       "project_number": project_number, 
       "file": project_file 
      }, 
      success: function(data) { 
       //console.log(data); // data object will return the response when status code is 200 
       if (data == "Error!") { 
       alert("Unable to send email!"); 
       alert(data); 
       } else { 
       } 
      }, 

PHPページを

<form action="" autocomplete="on" method="POST" id="project-information-form" enctype="multipart/form-data"> 
    <input type="text" class="input-borderless" id="project-name" name="name" placeholder="Your Name"> 
    <input type="email" class="input-borderless" id="project-email" name="email" placeholder="Email Address"> 
    <input type="number" class="input-borderless" id="project-number" name="phone" placeholder="Phone Number"> 
    <input type="file" name="file" id="file" class="inputfile" data-multiple-caption="{count} files selected" multiple> 
    <label for="file"><span id="file-upload-image"><img src="/icons/white-upload.png" height="25px" width="25px"></span>File Upload</label> 
    <input type="submit" id="submit-project" class="submit-project-button" value="Send Project Inquiry"> 
</form> 

AJAXを/添付私のPHPのメールにAJAXを通じてフォームからのメールに送信することができますどのように

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$project_name   = $_POST['project_name']; 
$project_email   = $_POST['project_email']; 
$project_number   = $_POST['project_number']; 
$project_file   = $_POST['file']; 

$to = ''; 
$subject = ''; 
$message = ' 
    <html> 
    <head> 
     <title>Project Inquiry Form Sent</title> 
    </head> 
    <body> 
     <p>There has been a Project submitted. Here are the details:</p><br> 
     <p>Name: '. $project_name .'</p> 
     <p>Email: '. $project_email .'</p> 
     <p>Phone Number: '. $project_number .'</p> 
     <p>The client uploaded a file ' .$project_file.'.</p> 

    </body> 
    </html> 
'; 
// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From:' .$project_email . "\r\n"; 

if (!empty($project_email)) { 
    if (filter_var($project_email, FILTER_VALIDATE_EMAIL)) { 

     //Should also do a check on the mail function 
     if (mail($to, $subject, $message, $headers)) { 
      echo "Your email was sent!"; // success message 
     } else { 
      echo "Mail could not be sent!"; // failed message 
     } 

    } else { 
     //Invalid email 
     echo "Invalid Email, please provide a valid email address."; 
    } 

} else { 
    echo "Email Address was not filled out."; 
} 
+0

あなたはJSONファイル値権を保持している性質を持つことができないことを知っていますか? – HenryDev

+0

いいえ、私はしませんでした。どうしたらいいですか? – Becky

+0

私はすぐ下に投稿した例を見てください。ホープそれはあなたを助ける:)! – HenryDev

答えて

0

ファイルをuploadsディレクトリに移動するには、サーバー上で実行されるスクリプトが必要です。 jQuery ajaxメソッドはフォームデータをサーバーに送信し、サーバー上のスクリプトがアップロードを処理します。

ここではPHPを使用した例を示します。この例を見てください。

クレジットがここに入ります - >jQuery AJAX file upload PHP

$('#submit-project').on('click', function() { 
var file_data = $('#file').prop('files')[0]; 
var form_data = new FormData();     
form_data.append('file', file_data); 
alert(form_data);        
$.ajax({ 
      url: 'email-project.php', // point to server-side PHP script 
      dataType: 'text', // what to expect back from the PHP script, if anything 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data,       
      type: 'post', 
      success: function(php_script_response){ 
       alert(php_script_response); // display response from the PHP script, if any 
      } 
}); 
}); 
+0

私は今成功していることを何かと一緒に追加しますか? – Becky

関連する問題