JavaScript:reading$\u POST&$_AJAX提交后的文件变量
我通过AJAX提交了一个表单,用于显示预先选择的图像。从本地驱动器选择一个映像将触发文件类型输入的“onchange”事件,并反过来调用AJAX例程。它工作正常,在成功“move_上传的_文件”后,PHP处理程序返回经过验证的文件名。以下说明了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
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提交返回时,无法访问这些变量。