Bonjour,

Je cherche à remplacer un champs input type file par une image puis d'upload mon image directement en ajax.
J'ai fait pour le moment :

HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<form method="post" id="form" enctype="multipart/form-data">
	<input id="upload" type="file" class="fl" name="file" style="display:none;" data-moodboard-id="{{$moodboard->id}}"/>
	<a href="" id="upload_link">Upload your photo</a>​
</form>
JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$("#upload_link").on('click', function(e){
	var $form = $('#form');
	var formdata = (window.FormData) ? new FormData($form[0]) : null;
	var data = (formdata !== null) ? formdata : $form.serialize();
 
	e.preventDefault();
	$("#upload:hidden").trigger('click');
 
	$("input:file").change(function (){			
		$.ajax({
			type : 'post',
			url : '/' + lang + '/upload.php?id=' + $(this).attr('data-moodboard-id'),
			contentType: false,
			processData: false,
			dataType: 'json',
			data: data,
			success: function(data){
				if(data.filename) {
					$('#containment-wrapper').css({'background' : 'url(' + data.filename + ') 0% 0 / cover no-repeat scroll rgba(0, 0, 0, 0)'});
				}
 
				generate_thumbnail(data.id);
				if(data.message != null) $(".save").html(data.message);
 
				setTimeout(function() {
					$('.save').hide();
				}, 2000);
				$('.save').show();
			}
		});
	});
});
Mais il semblerait que "data" soit "vide"

Vous auriez une idée ?

Merci