Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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:reading$\u POST&$_AJAX提交后的文件变量_Javascript_Php_Ajax_Xmlhttprequest - Fatal编程技术网

JavaScript:reading$\u POST&$_AJAX提交后的文件变量

JavaScript:reading$\u POST&$_AJAX提交后的文件变量,javascript,php,ajax,xmlhttprequest,Javascript,Php,Ajax,Xmlhttprequest,我通过AJAX提交了一个表单,用于显示预先选择的图像。从本地驱动器选择一个映像将触发文件类型输入的“onchange”事件,并反过来调用AJAX例程。它工作正常,在成功“move_上传的_文件”后,PHP处理程序返回经过验证的文件名。以下说明了AJAX提交是如何生效的: var xhr = new XMLHttpRequest(); var xForm = new FormData(document.forms.namedItem("form")); xhr.open("POST", "hand

我通过AJAX提交了一个表单,用于显示预先选择的图像。从本地驱动器选择一个映像将触发文件类型输入的“onchange”事件,并反过来调用AJAX例程。它工作正常,在成功“move_上传的_文件”后,PHP处理程序返回经过验证的文件名。以下说明了AJAX提交是如何生效的:

var xhr = new XMLHttpRequest();
var xForm = new FormData(document.forms.namedItem("form"));
xhr.open("POST", "handler.php", true);
xhr.onreadystatechange = function(){
  if(xhr.readyState == 4 && xhr.status == 200){
    document.getElementById("imgDiv").src = xhr.responseText;
  }
} 
xhr.send(xForm);
在从AJAX提交返回后,有没有办法访问$\u POST和$\u FILES变量,而不是让处理程序返回文件名?这通常可以在从正常表单帖子返回时使用:

<?php echo $_POST['stringInput'];?>
<?php echo $_FILES['imageInput']['fileName'];?>

但在这种情况下我什么也得不到

谢谢你

索非亚


编辑:如果相关,处理程序不在同一个HTML脚本中,而是在一个单独的PHP文件中。再次感谢

因为您在此处键入代码时出错:-

旧代码

x.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        document.getElementById("imgDiv").src = xhr.responseText;
    }
}
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        document.getElementById("imgDiv").src = xhr.responseText;
    }
}
新代码

x.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        document.getElementById("imgDiv").src = xhr.responseText;
    }
}
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        document.getElementById("imgDiv").src = xhr.responseText;
    }
}

意味着用xhr.onreadystatechange替换x.onreadystatechange

谢谢你的回复,但那只是论坛帖子的打字错误;正如我前面所说,代码运行良好,没有错误。我唯一的问题是,在PHP处理程序对$\u POST和$\u FILES变量进行更改后,从AJAX提交返回时,无法访问这些变量。