2016-04-09 14 views
0

Görüntüleri e-posta olarak göndermek için resimler gibi şeyleri ajax yoluyla metin dosyaları, e-posta yoluyla bir form gönderiminden etx içeren bir dosyanın nasıl gönderileceğini anlamaya çalışıyorum. Diğer verilerimi ajax ve php e-postalarımda olduğu gibi biçimlendirmeye çalışıyorum ama formun ajax'ımda hemen durduğunu söyleyebilirim. Bu benim php'ye bile göndermiyor, ama e-posta kısmına da sahip olduğumdan emin değilim.Formdan e-postaya bir dosya gönderme

Şimdiye kadar denediğim şey budur. Mümkün olduğu kadar çok eski kodu silmeye çalıştım, ama yapmaya çalıştığım şey için iyi bir his vermek için hala yeterli. Bu dosya e-posta için

$("#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 Page

<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/takmak benim php e-AJAX üzerinden bir formdan bir e-postaya göndermek yapabilirsiniz nasıl

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 bir dosya değeri hakkı tutan bir özelliği olamaz biliyoruz? – HenryDev

+0

Hayır, yapmadım. O zaman nasıl yapabilirim? – Becky

+0

aşağıdan gönderdiğim örneğe aşağıdan bakın. Umarım size yardımcı olur :)! – HenryDev

cevap

0

Dosyayı karşıya yükleme dizinine taşımak için sunucuda çalışan bir komut dosyasına ihtiyacınız var. JQuery ajax yöntemi, form verilerini sunucuya gönderir, ardından sunucudaki bir komut, yüklemeyi gerçekleştirir.

İşte PHP'yi kullanan bir örnek. Bu örneğe bir bakın.

Kredi buraya ->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

Öğeleri başarı karmaşasına şu an içinde devam ettiğim herhangi bir şeyle ekleyecek mi? – Becky