无法通过ajax将数据发送到php文件

时间:2014-11-04 03:10:34

标签: javascript php jquery ajax

这是我的HTML代码。我没有使用<form>

<input id="sortpicture" type="file" data-id="7" name="sortpic" multiple/>
<button id="upload">Upload</button>

这是JS

jQuery('#upload').on('click', function() {
    var file_data = jQuery('#sortpicture').prop('files')[0];       
    var form_data = new FormData();                  
    form_data.append('file', file_data); 
    form_data.append('id', 7); // ---> If I send this only i'm able to access `id` in php. If include `file` not access id in php file.

    jQuery.ajax({
        url: 'upload.php',   
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,                         
        type: 'POST',
        success: function(response){        
        },
        error:function(e){
        }
    });

PHP文件

$name = $_FILES['file']['name'];
//print_r($_FILES);
$id = $_POST['id'];    // Unable to get id.

如何在php文件中获取id。请提供任何建议。

1 个答案:

答案 0 :(得分:-1)

根据文档,我相信你已经关闭了。请记住,我从未使用过FormData API :)但是,如果我正确地解释它,那么它正在寻找&#34; name&#34;属性。

jQuery('#upload').on('click', function() {
    var formData = new FormData(); 
    var inputData = $('this').find('input');
    var fileData = inputData.files[0];       

    formData.append('file', fileData); //wants name attribute here?//
    formData.append('id', 7);

    jQuery.ajax({
        url: 'upload.php',   
        cache: false,
        contentType: false,
        processData: false,
        data: formData,                         
        type: 'POST',
        success: function(response){        
        },
        error:function(e){
        }
    });
});