【问题标题】:JavaScript: reading $_POST & $_FILES variables after AJAX submissionJavaScript:在 AJAX 提交后读取 $_POST 和 $_FILES 变量
【发布时间】:2014-02-24 15:59:20
【问题描述】:

我通过 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 文件中。再次感谢!

【问题讨论】:

    标签: javascript php ajax xmlhttprequest


    【解决方案1】:

    因为你在这里打错了代码:-

    旧代码

    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 替换为 xhr.onreadystatechange

    【讨论】:

    • 感谢您的回复,但这只是论坛帖子的错字;就像我之前说的,代码运行良好,没有错误。我唯一的问题是在 PHP 处理程序对其进行更改后,从 AJAX 提交返回后,无法访问 $_POST 和 $_FILES 变量。
    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多