簡體   English   中英

無法將表單發送到 PHP 腳本

[英]Can not send form to PHP script

我使用了一些好的 ol' ajax 提交 function 作為我制作的表格。 我用我使用的相同 javascript 做了一個小例子。 如果表單被正確發送,那么用戶將不會收到任何警告。 如果未發送表單,則用戶將收到“reee”警報。 就我而言,用戶收到“reeeeee”的警告,因為表單似乎沒有發送到 php 腳本,我不知道為什么。

它有點像這樣:

html

<form id = "theform" >
    <input name = "noodz" required>
</form>
js

const form = document.getElementById("theform");
form.addEventListener("submit", submitfunc);

function submitfunc(e) {

    e.preventDefault();
    const thing = new XMLHttpRequest();
    thing.open("POST", "upload.inc.php");

    thing.upload.addEventListener("progress", e => {
        console.log(e);

    });

    thing.onreadystatechange = function() {
        if (thing.readyState == 4 && thing.status == 200) {
            var message = thing.responseText;
            alert(message);
        }
    }

    thing.setRequestHeader("Content-Type", "multipart/form-data");
    thing.send(new FormData(form)); // <- where form is sent
}
php

<?php 
    if (isset($_POST['noodz'])){
        //form was sent

    } else {
        //form wasn't sent
        echo "reeeeeeeeeeeee"
    }
?>

您需要刪除該行

thing.setRequestHeader("Content-Type", "multipart/form-data")

並讓 XHR 正確設置內容類型值本身並生成正確的 MIME 邊界(如果需要 - 對於您的簡單形式,它不是)。

這是一個演示https://jsfiddle.net/oxaqfbcd/ - 如果您查看瀏覽器的網絡工具,您將看到請求正確形成並檢測到表單數據。

如果您重新添加該行代碼並再次運行它,您可以將請求正文部分的外觀與該行不存在時的外觀進行對比,看看它有什么影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM