ajax提交表格与文件

时间:2015-07-10 12:53:38

标签: php ajax

我的表格带有ajax,包含textarea和上传文件字段

我只能提交其中一个。

我该如何解决?

我想发送" info" +" filesData"到服务器。 请指教。 先谢谢你了

AJAX:

$(function() {
    $("#submit").click(function() {

    var file_data = $('#files').prop('files')[0];   
    var form_data = new FormData();                  
    form_data.append('file', file_data);
    var files_data =  form_data;
    alert(files_data);      


    var act = 'add';
    var $form = $("#addCommentForm");
    var info =  $form.serialize();
    info += '&act=' + act ;  
    alert(info);

    $.ajax({
           type: "POST",
           url: "ajax/addPost.php",

           dataType: 'text',  // what to expect back from the PHP script, if anything
           cache: false,
           contentType: false,
           processData: false,  

           data: files_data,
           success: function(data)
           {
            //   alert(data); // show response from the php script.
                $('#commentsBox').html(data);
                 $("#addCommentForm")[0].reset(); 

           }

         });

    return false; 
});
}); 

HTML:

<form class="form-horizontal" action='#' method="post" id="addCommentForm" enctype="multipart/form-data">

    <div class="form-group">
        <div class="col-md-8 col-xs-12">
            <textarea class="form-control" name="post[text]"></textarea>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-8 col-xs-12">
            <input type="file" class="form-control" name="file" id="files">
        </div>
    </div>                                  
    <div class="form-group">
        <label class="col-xs-2 control-label" for="textinput"></label>  
        <div class="col-md-8 col-xs-12">
            <a class="btn btn-primary" id="submit">submit</a>
        </div>
    </div>                                      
</form>

PHP

print_r ($_FILES);
print_r ($_POST);

1 个答案:

答案 0 :(得分:0)

在$ .ajax调用中,将数据参数(filesData)的值减去:

{ field1 : field1value, field2 : field2value, .... }

根据需要使用尽可能多的字段/值对

您也可以像这样直接获取值:

{ field1 : $('#commentsBox').text(), field2 : $('#yourinput').val(), .... }