簡體   English   中英

Javascript POST將不會在PHP頁面中加載

[英]Javascript POST will not load in PHP page

我有一個javascript函數來處理一些表單數據並構建POST到php頁面。 js執行xmlHTTP.open並發送到所構建的URL。

php頁面應接受參數並發送電子郵件,但似乎不接受參數。

我知道我在這里缺少一些愚蠢的東西,但是我有其他頁面相似,但是參數較少,而且它們可以正常工作。

<script>
function submitReg()
{
    var fn = document.getElementById("textfname").value;
    var ln = document.getElementById("textlname").value;
    var e = document.getElementById("textemail").value;
    var p = document.getElementById("textphone").value;
    var pr = document.getElementById("promocode").value;
    var c1 = document.getElementById("st-1").innerHTML + "_" 
    + document.getElementById("c-  1").innerHTML;
    if (document.getElementById("st-2").innerHTML != "")
    {
        var c2 = document.getElementById("st-2").innerHTML + "_" + 
    document.getElementById("c-2").innerHTML;
    }
    if (document.getElementById("st-3").innerHTML != "")
    {
        var c3 = document.getElementById("st-3").innerHTML + "_" + 
    document.getElementById("c-3").innerHTML;
    }
    var myURL = "form-to-email.php?" + "fn=" + fn + "&ln=" + ln + "&e=" + e + 
    "&p=" + p + "&pr=" + pr + "&c1=" + c1 + "&c2=" + c2 + "&c3=" + c3;


    xmlhttp.open("POST", (encodeURI(myURL)), true);
    xmlhttp.send();
}

</script>

和PHP代碼:

<?php

$fname = $_POST["fn"];
$lname = $_POST["ln"];
$email = $_POST["e"];
$phone = $_POST["p"];
$promo = $_POST["pr"];
$county1 = $_POST["c1"];
$county2 = $_POST["c2"];
$county3 = $_POST["c3"];



$email_from = 'support@somesite.com';

$email_subject = "Someone filled out the Splash page";

$email_body = "You have received a new form submission from the user $visitor_email.\n".
                        "Here it is:\n ".
            "First Name: $fname \n".
"Last Name: $lname \n".
"Email: $email \n".
"Phone: $phone \n".
"Promo Code: $promo \n".
"First County: $county1 \n".
"Second County(if Any): $county2 \n".
"Third County(if Any): $county3 \n";

$to = "user@gmail.com";

$headers = "From: $email_from \r\n";

mail($to,$email_subject,$email_body,$headers);
Header("Location: thankyou.html");

?>

問題是您要發送的空POST設置了很多GET參數,而您的php代碼則需要POST參數。

正確使用該帖子:

var myURL = "form-to-email.php";
var params = "fn=" + encodeURIComponent(fn) + "&ln=" + encodeURIComponent(ln) + "&e=" + encodeURIComponent(e) + "&p=" + encodeURIComponent(p) + "&pr=" + encodeURIComponent(pr) + "&c1=" + encodeURIComponent(c1) + "&c2=" + encodeURIComponent(c2) + "&c3=" + encodeURIComponent(c3);
xmlhttp.open("POST", myURL, true);
xmlhttp.send(params);   

或准備PHP接收“ GET”參數:

$fname = $_GET["fn"];

或不要擔心PHP方面的問題,如果它們是GET或POST參數:

$fname = $_REQUEST["fn"];

暫無
暫無

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

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