I am trying to upload an image with AJAX. When I try like this, nothing happens. AJAX does not call H_FileUpload.php
. But the $("#in_profile_img")
part does work. Only the AJAX call does not work. Why doesn't it work?
HTML:
<ul class="dropdown-menu fm-menu" role="menu">
<li>
<a href="javascript:void(0)" onclick="$.change_profile_img()">
<i class="fa fa-pencil"></i> Change
</a>
</li>
<li><a href="#"><i class="fa fa-trash-o"></i> Delete</a></li>
</ul>
<form id="form_profile_image" enctype="multipart/form-data" action="" method="POST">
<input type="file" name="profile_img" id="in_profile_img" style="display:none;" />
</form><!-- profile image form -->
JavaScript:
$.change_profile_img = function() {
$("#in_profile_img").click();
}
$("#in_profile_img").on('change', (function(e) {
e.preventDefault;
var formData = new FormData(this);
$.ajax({
url : "./handlers/H_FileUpload.php",
type : "POST",
data : formData,
cache : false,
contentType : false,
processType : false,
success : function(data) {
alert("Success");
alert(data);
}
});
}));
PHP (H_FileUpload.php):
<?php
$name = $_FILES["profile_img"]["name"];
$result["ok"] = $name;
echo json_encode($result);
?>