2014-02-24 20 views
0

我通过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

因为你做的代码错误在这里键入: -

旧代码

​​

新代码

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

意味着XHR取代x.onreadystatechange。 onreadystatechange

+0

感谢您的回复,但那只是论坛帖子输入错误;就像我之前说的,代码运行良好,没有错误。我唯一的问题是在PHP处理程序修改了它之后,从AJAX提交回来后,无法访问$ _POST和$ _FILES变量。 – iSofia