jQuery AJAX提交表单和文件

时间:2016-07-25 03:00:25

标签: javascript php jquery ajax

它在WordPress中。 我必须提交带有文件的表格并获取该文件。 我很好地获取了文本字段数据,但无法捕获文件:( 我的代码如下。

HTML

<form method="POST" class="JsFormPro" enctype="multipart/form-data">
    <table>
        <tr>
            <td>
                <textarea name="WordText" id="WordText" class="WordText" cols="30" rows="10"></textarea>
            </td>
        </tr>
        <tr>
            <td>
                <input type="file" id="WordFile" class="WordFile" name="WordFile">
            </td>
        </tr>
        <tr>
            <td>
                <input type="submit" name="" value="Submit">
            </td>
        </tr>
    </table>
</form>

有我的jQuery和AJAX代码

var form = $('.JsFormPro');
form.on('submit', function(e){
    e.preventDefault();
    $.ajax({
        dataType : 'json',
        type: "POST",
        url: 'hit.php',
        data : {action : 'count_word_prism', Post : form.serialize()},

        beforeSend: function(){
        },

        success: function(Response){
        }
    });
});

我有PHP代码,我已经尝试过了。

extract($_POST);
if ($Post) {
    parse_str($Post, $get_array);
    echo"<PRE>";
    print_r($get_array['WordText']);
    echo"</PRE>";

    echo"<PRE>";
    print_r($_FILES['WordFile']);
    echo"</PRE>";
}

如果有任何解决方案请发布您的答案。

1 个答案:

答案 0 :(得分:0)

您必须更改以下代码。这是完美的。

jQuery和AJAX代码

var form = $('.JsFormPro');
form.on('submit', function(e) {
    var formData = new FormData(this);
    formData.append('action', 'count_word_prism');
    e.preventDefault();
    $.ajax({
        dataType : 'json',
        url: "hit.php", 
        type: "POST", 
        data: formData, 
        contentType: false,
        cache: false,
        processData: false,
        beforeSend: function(){
        },
        success: function(Response){
        }
    });
})

PHP代码

<?php
echo "<pre>";
print_r($_POST);
print_r($_FILES);
die;
?>