【问题标题】:Getting ajax POST php获取ajax POST php
【发布时间】:2012-08-08 02:50:46
【问题描述】:

我正在尝试让一个 ajax 文件上传器工作,并将一些额外的表单数据传递给 php。 php 脚本能够获取 $_FILES['fileToUpload'] 但我得到了 $_POST["fname"]; 的未定义索引;

PHP

if(isset($_FILES['fileToUpload'])){

$fname = $_POST["fname"];

$name = htmlentities($_FILES['fileToUpload']['name']);
}

JAVASCRIPT

var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "uploader.php");
xhr.send(fd);

HTML

<form id="form1" name="form1" enctype="multipart/form-data">
                <div id="user">
                    <input type="text" id="fname" name="fname" />
                </div>
                <div id="fileInfo">
                    <div id="fileName"></div>
                    <div id="fileSize"></div>
                    <div id="fileType"></div>
                </div>
                <div class="row"></div>
                <div class="row">
                    <input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/>
                </div>
                <div class="row">
                    <input type="button" onclick="uploadFile()" value="Upload" />

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    因为您使用 ajax 发送帖子,所以您需要执行类似的操作

    fd.append("fname", document.getElementById('fname').value);
    

    否则,没有什么可以告诉“onclick”发送您的 fname 输入字段。

    仅当您使用提交按钮时才会发送输入字段。

    【讨论】:

    • 哇,我之前试过了,但现在我看到你的打字我错过了值后面的括号);现在工作
    • 发生在我们最好的人身上。我喜欢在 Firefox 中使用开发者控制台来捕捉类似的小东西(ctrl+shift+k 将其关闭)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多