因此,如果我使用纯PHP插入表单信息,一切都正常,一切都插入到我的数据库中,包括-input“type / file” - (意思是,图像也是如此)。
但是当它通过AJAX插入时,它会插入一切但是图像。出于某种原因,当通过AJAX进行渲染时,图像是我唯一无法插入的东西。这是我的代码。
AJAX CALL
$('#insert_form').click(function(e){
$.ajax({
type: 'POST',
url: 'insert_form_backend.php',
data: $('#__form__').serialize(),
success: function() {
alert("Insert Successful");
}
});
e.preventDefault();
});
insert_form_backend.php
<?php
require_once "mysql/db.php";
$name = $_POST['name'];
$surname = $_POST['surname'];
$photo = $_FILES['photo']['name'];
$photo_temp = $_FILES['photo']['tmp_name'];
$photo_path = "folder_temp_images/$photo";
move_uploaded_file($photo_temp, $photo_path);
$query = "INSERT INTO my_table(column1, column2) ";
$query .= "VALUES ('$column1', '$column2')";
$result = mysqli_query($connection, $query);
?>
如上所述,如果我使用纯PHP提交表单,它只会插入所有内容(包括图像),这意味着它会刷新整个页面。
谢谢,我不想对此嗤之以鼻,我真的想用ajax做这件事。我希望我们能解决这个问题!
FOR FILE in AJAX尝试这种方法:
$("#photo").change(function(){
var file_datta = $('#photo').prop('files')[0];
var form_datta = new FormData();
form_datta.append('file', file_datta);
$.ajax({
url: 'insert_form_backend.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_datta,
type: 'post',
success: function(php_script_response){
}
});
});