如何在ajax函数中添加上传图像功能?

时间:2012-10-28 14:48:32

标签: ajax codeigniter-2

我在这里有一个困境我在ajax函数中使用if else我有这个代码

function submitForm() {

    offset  = jQuery('#email').offset();
    xTop    = offset.top - $(window).height()/2 ;
    posLeft = offset.left - ($(window).width()-765)/2 ;
    posTop  = offset.top;
    params = jQuery('#registration-form').serialize();
    lytebox.show({message:'Please wait...', align: 'center', closeButton: false});
    jQuery.post('ajax/register', params + '&registered=' + isRegistered, function(data) {
            data = eval('(' + data + ')');
            if(data.error) {
                    lytebox.close();
                    $('#errorHolder').remove();
                    error = data.remarks;
                    error +='<img src="images/ttip-arrow.png" id="ttip-arrow"/></div>';
                    var wrapper     = $('.wrapper');
                    var errorHolder = $('<div id="errorHolder">')
                                                      .html(error).appendTo(wrapper);;

                    errorHolder.css({
                                                            'left':posLeft,
                                                            'top':posTop-$('#errorHolder').outerHeight()
                                              })
                                       .delay(5500)
                                       .fadeOut(1000);

                    //$("html, body").animate({scrollTop : xTop},800,function(){me.focus()});
                    FB.Canvas.scrollTo(0,posTop-100);
                    jQuery('#email').focus();
            } else {       
                    lytebox.close();

                    //how can i add upload image here and send email function with attach image
                    $('.notification').remove();
                    $('#errorHolder').remove();
                    $('#registration-form').fadeOut(300);
                    $('.get-started').fadeIn(300);
                    $('.show-thank-you-register').fadeIn(300);


            }
    });

}

我想在其他部分添加上传图片功能和电子邮件发送功能..请帮帮我

1 个答案:

答案 0 :(得分:0)

有序列化常量用于序列化表单数据。 http://api.jquery.com/serialize/

以下元素不适合序列化。

<input type="file"/> 

因此它不能包含在jQuery中('#registration-form')。serialize();方法

所以你不能使用图像字节的序列化来向服务器提交图像数据。

或者,您可以通过ajax post call上传控件以上传图像。有关更多信息,请访问以下网址

http://www.uploadify.com/demos/

修改

首先上传您的图片uplodify有 onComplete 事件,告知上传已完成并已成功完成,现在您根据业务需求保存表单的其余部分。