Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax发送图像和数据_Javascript_Php_Ajax_File Upload_Image Uploading - Fatal编程技术网

Javascript 如何使用ajax发送图像和数据

Javascript 如何使用ajax发送图像和数据,javascript,php,ajax,file-upload,image-uploading,Javascript,Php,Ajax,File Upload,Image Uploading,我想更改个人资料信息。有4个输入框和2个输入文件类型 仅使用javascript而不使用jquery可以解决此问题吗 我不能使用Ajax传递输入框值和输入文件类型图像,直到现在我的代码总是返回 Notice: Undefined index: full_name in C:\xampp\htdocs\hate\php\profile-update.php on line 6 ... until Notice: Undefined index: bg_img in C:\xampp\htdoc

我想更改个人资料信息。有4个输入框和2个输入文件类型

仅使用javascript而不使用jquery可以解决此问题吗

我不能使用Ajax传递输入框值和输入文件类型图像,直到现在我的代码总是返回

Notice: Undefined index: full_name in C:\xampp\htdocs\hate\php\profile-update.php on line 6

... until

Notice: Undefined index: bg_img in C:\xampp\htdocs\hate\php\profile-update.php on line 15
我认为我在
formData.append()中犯了错误

有人能解释一下.files[0]吗。我在谷歌上找不到它

html

profile-update.php从第6行开始

$full_name = $_POST['full_name'];
$screen_name = htmlspecialchars(mysqli_real_escape_string($conn,$_POST['screen_name']));
$target_name = $_POST['target_name'];
$description = htmlspecialchars(mysqli_real_escape_string($conn,$_POST['description']));
$profile_img_name = $_FILES['profile_img']['name'];
$profile_img_size = $_FILES['profile_img']['size'];
$profile_img_tmp = $_FILES['profile_img']['tmp_name'];
$bg_img_name = $_FILES['bg_img']['name'];
$bg_img_size = $_FILES['bg_img']['size'];
$bg_img_tmp = $_FILES['bg_img']['tmp_name'];
试试这个:

我在这里举了一个例子。请从那里获取适当的代码,并在脚本中使用它

<script type="text/javascript">

    $(document).ready(function() {

        $("form#frm1").submit(function() {
            var formData = new FormData($(this)[0]);

            $.ajax({
                url: 'posturl.php',
                type: 'POST',
                data: formData,
                async: false,
                success: function(data) {
                    alert(data);
                },
                cache: false,
                contentType: false,
                processData: false
            });

            return false;
        });

    });
</script>

<form name="frm1" id="frm1" action="number.php" method="post" enctype="multipart/form-data">
    <input type="text" name="pname" id="pname" placeholder="Person Name"  />
    <br />
    <br />
    <input type="file" name="pfile" id="pfile"  />
    <br />
    <input type="submit" value="Send" name="btnadd" id="btnadd" style="margin-top: 25px" />
</form>

$(文档).ready(函数(){
$(“表格frm1”)。提交(函数(){
var formData=新formData($(此)[0]);
$.ajax({
url:'postrl.php',
键入:“POST”,
数据:formData,
async:false,
成功:功能(数据){
警报(数据);
},
cache:false,
contentType:false,
processData:false
});
返回false;
});
});




另外,在这里使用您自己的表单和字段。

您能解释一下为什么使用$(this)[0]吗?
$("#yourId").click(function(){
    $.ajax({
        url: "provideyourUrl.php",// give your url
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
});
<script type="text/javascript">

    $(document).ready(function() {

        $("form#frm1").submit(function() {
            var formData = new FormData($(this)[0]);

            $.ajax({
                url: 'posturl.php',
                type: 'POST',
                data: formData,
                async: false,
                success: function(data) {
                    alert(data);
                },
                cache: false,
                contentType: false,
                processData: false
            });

            return false;
        });

    });
</script>

<form name="frm1" id="frm1" action="number.php" method="post" enctype="multipart/form-data">
    <input type="text" name="pname" id="pname" placeholder="Person Name"  />
    <br />
    <br />
    <input type="file" name="pfile" id="pfile"  />
    <br />
    <input type="submit" value="Send" name="btnadd" id="btnadd" style="margin-top: 25px" />
</form>
$("#yourId").click(function(){
    $.ajax({
        url: "provideyourUrl.php",// give your url
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
});