için "Form Plugin" ile yükleme jQuery kullanıyorum ve Ajax ile dosya yüklemek istiyorum. Bazı aramalar yaptım ve mümkün olmadığını buldum. Ancak, Ajax aracılığıyla dosya yüklememize olanak tanıyan bir jQuery eklentisi, jQuery Form Plugin var.Ajax dosya jQuery
Çok iyi çalışıyor, ancak özel bir sorunum var. İşte benim kodudur:
$('#question-form').submit(function() {
var serialAnswers = '';
// Create a query string given some fields
// Format of the query string : answers[0][fr_fr][0]=a1fr&answers[0][fr_fr][1]=2&answers[0][en_uk][0]=a1en&answers[0][en_uk][1]=6&...
$('#question-answers > div').each(function(idx, elt) {
$('div[lang]', $(elt)).each(function(idxLang, eltLang) {
var lang = $(this).attr('lang');
serialAnswers += 'answers[' + idx + '][' + lang + '][0]=' + $("[answerpart=display]", $(eltLang)).val();
serialAnswers += '&answers[' + idx + '][' + lang + '][1]=' + $("[answerpart=value]", $(eltLang)).val() + '&';
});
});
$(this).ajaxSubmit({
datatype: "html",
type: "POST",
data: serialAnswers,
url: $(this).attr("action"),
success: function(retour) {
$('#res-ajax').html(retour);
}
});
return false;
});
Gördüğünüz gibi, ben de aynı seçenekleri ile bir $(this).ajaxSubmit()
çağrısıyla $.ajax
aramayı değiştirmek zorunda. Ayrıca, PHP koduna iletmek için bazı alanlara göre bir sorgu dizesi (kodda serialAnswers) oluşturmam gerekiyor.
Yüklemek için dosyam olmadığında ne yapardım. Sadece form alanları tefrika ve benim sorgu dizesi adlandırılmış serialAnswers ekledi:
$.ajax({
datatype: "html",
type: "POST",
data: $(this).serialize() + '&' + serialAnswers,
url: $(this).attr("action")
success: function(retour) {
$("#res-ajax").html(retour);
}
});
Ama benim sorunum formu eklentisi (PHP dosyasında) benim ek veriler (sorgu dizesi) bu şekilde iletir olmasıdır:
data: { key1: 'value1', key2: 'value2' }
Ama JSON o benim sorgu dizesi dönüştürmek için nasıl bilmiyorum:
Array
(
[question_heading_fr_fr] => something
[question_heading_en_uk] => nothing
[question_type] => 5
[0] => a
[1] => n
[2] => s
[3] => w
[4] => e
[5] => r
[6] => s
[7] => [
[8] => 0
[9] => ]
[10] => [
[11] => f
[12] => r
[13] => _
[14] => f
[15] => r
[16] => ]
....
)
belgelerine göre, böyle, veri seçeneğine bir JSON nesnesi geçmek zorunda bject ve PHP tarafında bir dizi olarak yorumlanacaktır.
Çözüm var mı?
DÜZENLEME: Ben bir çerçeve kullanır bile, formdan gelmiyor bilgileri içeren bir sorgu dizesi nasıl ekleneceğini bilmiyorum (benim yukarıda koddan serialAnswer
).
[Uploadify] (http://www.uploadify.com/)? – ifaour
Flash kullanmamayı tercih ederim, mümkünse –