Javascript 如何使用FormData将输入值传递给ajax?

Javascript 如何使用FormData将输入值传递给ajax?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试使用ajax和php上传图像,我已经成功地使其工作到一定程度,但我无法将输入的值(ID)传递到我的php文件 这是我的设想 形式 PHP 如何将$row['thing\u id']传递给$get\u id变量?我可以在成功时使用另一个GET ajax调用传递它,但是随后我丢失了image_id值(我使用foreach,因为我可能上载多个文件),因此我希望在同一个php文件中处理它 我没有包括我的上传脚本,因为它可以工作,除非我尝试使用thing_id制作一些东西 在ajax代码中传递数

我正在尝试使用ajax和php上传图像,我已经成功地使其工作到一定程度,但我无法将输入的值(ID)传递到我的php文件

这是我的设想

形式

PHP

如何将
$row['thing\u id']
传递给
$get\u id
变量?我可以在成功时使用另一个GET ajax调用传递它,但是随后我丢失了image_id值(我使用foreach,因为我可能上载多个文件),因此我希望在同一个php文件中处理它

我没有包括我的上传脚本,因为它可以工作,除非我尝试使用thing_id制作一些东西

在ajax代码中传递数据属性

然后您可以访问php文件中的upId,因为我已经进行了更新,这样您也可以将upload file字段值发送到php文件。更改id,使其与字段匹配,然后可以使用

$get_id=$\u POST['upId']

$image=$_POST['images']


您有两种方法:

One:
value=”“
应该是您的表单#myform的值/id

两个: 你可以按Harigovind说的方式传递“东西id”


希望有帮助

您有许多选项,例如添加隐藏的输入标记

使用
name=“uploadimages”
和一些所需的值


name=“uploadimages”
添加到按钮可能会起作用,我不确定

您现在有两个数据属性(向下看):@Harigovind R当我从底部删除数据时:表单,我得到了未定义的index:thing\u id和未定义的index:images错误。@salp这是因为一旦您从数据中删除表单,您就不会将images字段传递给php。@salp如果您也传递images字段的值,而不是传递整个表单,则会出现此错误。但我不使用表单,只使用一个按钮。有解决方法吗?为什么不添加一个具有该值的隐藏输入字段并在php中接收它呢<代码>
<form enctype="multipart/form-data" id="myform">
        <input type="file" name="images[]" multiple id="image"/>
</form>
<button type="button" id="uploadimages" name="thing_id" 
value="<?php echo $row['thing_id']; ?>" class="btn btn-primary">Save changes
</button>
    $("#uploadimages").click(function () {
        var form = new FormData($('#myform')[0]);

        // Make the ajax call
        $.ajax({
            url: 'uploadimages.php',
            type: 'POST',
            xhr: function () {
                var myXhr = $.ajaxSettings.xhr();
                if (myXhr.upload) {
                    myXhr.upload.addEventListener('progress', progress, false);
                }
                return myXhr;
            },
            //add beforesend handler to validate or something
            //beforeSend: functionname,
            success: function (res) {
                $('#content_here_please').html(res);
                /**/
            },
            //add error handler for when a error occurs if you want!
            //error: errorfunction,
            data: form,
            cache: false,
            contentType: false,
            processData: false
        });
    });
$get_id = $_POST['']; // This is where I stuck.
$.ajax({
        url: 'uploadimages.php',
        type: 'POST',
        data:{upId:$("#uploadimages").val(),images:$('#uploadFieldId').val()},
        xhr: function () {
            var myXhr = $.ajaxSettings.xhr();
            if (myXhr.upload) {
                myXhr.upload.addEventListener('progress', progress, false);
            }
            return myXhr;
        },
        //add beforesend handler to validate or something
        //beforeSend: functionname,
        success: function (res) {
            $('#content_here_please').html(res);
            /**/
        },
        //add error handler for when a error occurs if you want!
        //error: errorfunction,
        cache: false,
        contentType: false,
        processData: false
    });