提问者:小点点

如何使用AJAX提交表单数据文本和图像


我试图将图像数据从Ajax发送到PHP,我已经将表单enc类型设置为“multipart/form data”。

它发送文本,但是,如何将文件发送到。php脚本?

行,我发送的图像是

employee_picture = $("#employee_picture").val();

我认为我需要改变现状。val()是另一个问题,但是我目前还没有解决这个问题的知识。

Ajax:

<script>
    $(document).ready(function () {
        $("form").submit(function (event) {
            $("#create_employee").attr("disabled", true);
            event.preventDefault();
            var csrf_token = $("#csrf_token").val();
            var first_name = $("#first_name").val();
            var last_name = $("#last_name").val();
            var email = $("#email").val();
            var phone = $("#phone").val();
            var title = $("#title").val();
            var dob = $("#dob").val();
            var other_information = $("#other_information").val();
            var gender = $("#gender").val();
            var address = $("#address").val();
            var address2 = $("#address2").val();
            var city = $("#city").val();
            var postal_code = $("#postal_code").val();
            var e_first_name = $("#e_first_name").val();
            var e_last_name = $("#e_last_name").val();
            var e_phone = $("#e_phone").val();
            var e_relationship = $("#e_relationship").val();
            var employee_picture = $("#employee_picture").val();
            var create_employee = $("#create_employee").val();
            $(".formMessage").load("/app/business/create_employee.php", 
            {
                csrf_token: csrf_token,
                first_name: first_name,
                last_name: last_name,
                email: email,
                phone: phone,
                title: title,
                dob: dob,
                other_information: other_information,
                gender: gender,
                address: address,
                address2: address2,
                city: city,
                postal_code: postal_code,
                e_first_name: e_first_name,
                e_last_name: e_last_name,
                e_phone: e_phone,
                e_relationship: e_relationship,
                employee_picture: employee_picture,
                create_employee: create_employee
            });
        });
    });
</script>

另外,在php脚本中。如何使用$\u POST或$\u文件访问它?非常感谢。


共1个答案

匿名用户

您不想使用val是正确的。您可以使用FileReader API(假设浏览器支持允许)从文件输入中实际获取文件内容。有关详细信息,请参见此问题:从JQuery中的文件输入获取数据

您可以像现在这样传递该值,它将只是可在$\u POST阵列服务器端访问的表单数据中的字符串。通常,这将是base64编码的值。

如果进行纯表单提交(不是通过AJAX),则需要使用$_FILES数组。

此外,您可能还想看看如何使用$。ajax$。发布而不是$。加载。我相信,$。load将在您真正打算发布文章时执行GET请求。