всем привет) сейчас делаю форму отправки на php, она работает, все данные улетают. но не получается реализовать прикрепление с последующей отправкой файлов..( не могу понять, что делаю не так. программированием стала заниматься не так давно, поэтому сильно не ругайте)) буду бесконечно благодарна, если кто подскажет)
вот код формы:
<form id="zakaz" action="" method="post" class="form" enctype="multipart/form-data">
...
<input type="file" name="your-file" accept=".jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv" />
...
</form>
код PHP:
<?php
$mailTo = ' ';
$mailFrom = ' ';
$successMsg = 'Сообщение отправлено!';
$fillMsg = 'Пожалуйста, заполните все поля!';
$errorMsg = 'Ошибка!';
?>
<?php
if(
!isset($_POST['your-name']) ||
!isset($_POST['your-phone']) ||
!isset($_POST['your-email']) ||
!isset($_POST['comment']) ||
empty($_POST['your-name']) ||
empty($_POST['your-phone']) ||
empty($_POST['your-email']) ||
empty($_POST['comment']) ||
empty($_POST['agree'])
) {
$json_arr = array( "type" => "error", "msg" => $fillMsg );
echo json_encode( $json_arr );
} else {
?>
<?php
$subject = "Заявка от пользователя";
$msg = "Имя: ".$_POST['your-name']."\r\n";
$msg .= "Телефон: ".$_POST['your-phone']."\r\n";
$msg .= "Email: ".$_POST['your-email']."\r\n";
$msg .= "Комментарий: ".$_POST['comment']."\r\n";
$success = @mail($mailTo, $subject ." " .$_POST['your-name'], $msg, 'From: ' . $mailFrom );
if ($success) {
$json_arr = array( "type" => "success", "msg" => $successMsg );
echo json_encode( $json_arr );
} else {
$json_arr = array( "type" => "error", "msg" => $errorMsg );
echo json_encode( $json_arr );
}
}
и Ajax:
$("#Submitbtn2").on( "click", function(event) {
event.preventDefault();
var mydata = $("#zakaz").serialize();
$.ajax({
type: "POST",
dataType: "json",
url: "forms/.request2.php",
data: mydata,
success: function(data) {
if( data["type"] == "error" ){
$("#zakaz").append('<div class="sended">Ваше сообщение успешно отправлено.</div>');
},
error: function(xhr, textStatus, errorThrown) {
}
});
return false;
});