UPDATE: I have almost solved this problem, please see Jquery form no submission to IE7 and IE8 i just need to sort ot ie7 and ie8,
I have been using THIS plugin to upload files as an email attachment, i have gotten it to the point where it actually works, the only problem is it currently uses this to submit:
jQuery.ajax({ beforeSend: function() { status.empty(); var percentVal = '0%'; bar.css("width", percentVal) percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + '%'; bar.css("width", percentVal) percent.html(percentVal); //console.log(percentVal, position, total); }, complete: function(xhr) { status.html(xhr.responseText); } }); And the form i need to add it to, uses this to submit:
jQuery.ajax({ type: "POST", url: "mail.php", dataType: "json", data: {parameters: jsonData} }); How would i make the plugin work with my form of submission?
Here's the JSFIDDLE for the current working upload form.
and then the form i need to combine the working one with JSFIDDLE (i have shortened it to only the upload fields, but there is a bunch of other information)
Also here's the php send function:
<?php function printMember($member) { foreach($member as $key=>$value) { //Fill the aux string first $str.= "$key : $value <br />"; } //string that will be added to $msg variable inside the loop return $str; } $json = $_POST['parameters']; $json_string = stripslashes($json); $data = json_decode($json_string, true); $depCount = count($data["dependants"]); $msg .= "<h2>Main member data:</h2>"; $msg .= printMember($data["mainmember"]); $msg .= "<h2>There are $depCount Dependants</h2>"; foreach ($data["dependants"] as $index => $dependant) { $msg .= "<h2>Dependant $index</h2>"; $msg .= printMember($dependant); } $strTo = "[email protected]"; $strSubject = "Image Testing"; $strMessage = nl2br($msg); //*** Uniqid Session ***// $strSid = md5(uniqid(time())); $strHeader = ""; $strHeader .= "From: Dawid<[email protected]>\nReply-To:[email protected]"; $strHeader .= "MIME-Version: 1.0\n"; $strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n"; $strHeader .= "This is a multi-part message in MIME format.\n"; $strHeader .= "--".$strSid."\n"; $strHeader .= "Content-type: text/html; charset=utf-8\n"; $strHeader .= "Content-Transfer-Encoding: 7bit\n\n"; $strHeader .= $strMessage."\n\n"; //*** Attachment ***// $count = 0; foreach($_FILES['myfile']['name'] as $filename) { $temp = $_FILES['myfile']['tmp_name'][$count]; $strFilesName = $filename; $strContent = chunk_split(base64_encode(file_get_contents($temp))); $strHeader .= "--".$strSid."\n"; $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; $strHeader .= "Content-Transfer-Encoding: base64\n"; $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n"; $strHeader .= $strContent."\n\n"; $count++; } $flgSend = @mail($strTo,$strSubject,null,$strHeader); // @ = No Show Error // if($flgSend) { echo "Mail send completed."; } else { echo "Cannot send mail."; } ?> If anyone doesn't fully understand the question, I will try here to even further explain it:
I have duplicate-able fields that on submit the information gets put into a JSON array and then gets parsed to an email by PHP, what i was trying to do is have a file field where images get uploaded and sent with the email, but after researching a lot on the web I found that this is not possible with ajax so I found THIS plugin that actually works and now i am just trying to combine it with my original form