I've a question about ajax form. So, You can see my following ajax code have data-id
. I'm getting this id in .pmsc
div. But When I press #upmsc for uploading image then I am not getting any error, just getting this result from chrome developer console, no upload, no inserting the image name in database. What I'm doing wrong here.
Then ajax submit form is this
$('body').on('change', '#upmsc', function(e) {
e.preventDefault();
var id = $(".pmsc").attr("data-id");
var data = 'id=' + id;
$("#musicform").ajaxForm({
type: "POST",
data: data,
cache: false,
target: '.appended',
beforeSubmit: function() {
// Do Something
},
success: function(response) {
// Do Something
$(".showecho").html(response);
},
error: function() {}
}).submit();
});
My html form is this:
<form id="cfrm" class="options-form" method="post" enctype="multipart/form-data" action="'.$base_url.'upload.php">
<label class="mcup" for="upcmsc"></label>
<input type="file" name="musicCover" id="upcmsc" />
</form>
<div class="pmsc" id="56">
</div>
and PHP code is this
<?php
include_once 'inc/inc.php';
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg","PNG","JPG","JPEG","GIF","BMP");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['id'])) {
$id = mysqli_real_escape_string($db, $_POST['id']);
$name = $_FILES['musicCover']['name'];
$size = $_FILES['musicCover']['size'];
if(strlen($name)) {
$ext = getExtension($name);
if(in_array($ext,$valid_formats)) {
if($size<(50024*50024)) {
$actual_image_name = time().$uid.".".$ext;
$tmp = $_FILES['musicCover']['tmp_name'];
if(move_uploaded_file($tmp, $mcoverpath.$actual_image_name)) {
$data=$HuHu->Music_Cover_Image_Upload($id,$actual_image_name);
if($data){
echo '<img class="cover covermsc" src="'.$base_url.$mcoverpath.$actual_image_name.'">';
}
} else {
echo "Fail upload folder with read access.";
}
} else
echo "Image file size max 1 MB";
} else
echo "Invalid file format.";
} else
echo "Please select image..!";
exit;
}
?>