Добрый вечер.
Уже долго ломаю голову, не могу понять что делаю не так, так как сталкиваюсь в первый раз.
Разметка формы:
<form method="POST" id="redactorProduct" enctype="multipart/form-data">
<label>
<span>Название товара</span>
<input type="text" name="product_name" id="product_name" class="req">
</label>
<label>
<span>Фото</span>
<input type="file" name="product_image_1" id="product_image_1">
</label>
<label>
<span>Артикул</span>
<input type="text" name="product_article" id="product_article" class="req">
</label>
<button>Добавить продукт</button>
</form>
Ajax обработка, скорее всего
криво написал, но работает)
$('#redactorProduct button').click(function(event) {
event.preventDefault();
var data = $('#redactorProduct').serialize();
var formData = new FormData();
formData.append('file', $('#product_image_1').prop("files")[0]);
console.log(formData);
$.ajax({
url: '/product-add.php',
type: 'POST',
dataType : 'text',
processData: false,
contentType: false,
data: {data: data, formData: formData},
})
.done(function(last) {
$('.all_product').append(last);
});
});
.done проходит, только значит ли это, что все данные отправились?
php - обработка
$product_name = $_POST['product_name'];
$product_article = $_POST['product_article'];
if($_FILES['file']['name'] != ''){
$test = explode('.', $_FILES['file']['name']);
$extension = end($test);
$name = rand(100,999).'.'.$extension;
$location = './upload/'.$name;
move_uploaded_file($_FILES['file']['tmp_name'], $location);
$data = ["fileName"=>$name];
}else{
echo 'Ошибка при загрузки страницы.'; // Выходит именно это, значит файл не грузится, но не понимаю где ошибка.
exit();
}
$update = "INSERT INTO wp_buggyproduct (`product_name`, `product_article`, `product_maker`, `product_kit`, `product_description`, `product_cost`)
VALUES ('$product_name', '$product_article', '$product_maker', '$product_kit', '$product_description', '$product_cost')
";
$result = mysqli_query($link, $update);
Заранее спасибо за все комментарии, хочу совершенствовать код!