我通过AJAX提交表单是为了显示预先选择的图像。从本地驱动器中选择图像将触发文件类型输入的“onchange”事件,然后调用AJAX例程。它运行正常,并且在成功的“move_uploaded_file”之后,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提交返回后访问$ _POST和$ _FILES变量?使用以下方法从正常表格帖子返回时通常可以这样做:
<?php echo $_POST['stringInput'];?>
<?php echo $_FILES['imageInput']['fileName'];?>
但在这种情况下我无法得到任何东西。
感谢你,
索菲亚
编辑: 如果它可能相关,则处理程序不在同一个HTML脚本中,而是在单独的PHP文件中。再次感谢!
答案 0 :(得分:0)
因为你在这里输入代码时出错: -
旧代码
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