简体   繁体   English

ajax请求不发布表单数据

[英]ajax request not posting form data

I have a problem where the values entered (email and password) into my login form are not being parsed to my server php script. 我有一个问题,即我的登录表单中输入的值(电子邮件和密码)未被解析为我的服务器php脚本。

My ajax request: 我的ajax请求:

function signin(){
var loginEmail = gebi("loginEmail").value;
var loginPass = gebi("loginPass").value;

if(loginEmail == "" || loginPass == ""){
    gebi("loginEmail").style.borderColor = "red";
    gebi("loginPass").style.borderColor = "red";
} else {
    gebi("signinBtn").style.display = "none";

            //Declare ajax request variables
    hr = new XMLHttpRequest();
    url = "main.php";
    vars = "email="+loginEmail+"&pass="+loginPass;

    //Open the PHP file that is receiving the request
    hr.open("POST", url, true);

    //Set content type header info for sending url ecncoded variable in the request
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    //Trim string data before sending it
    if (!String.prototype.trim) {
        String.prototype.trim = function () {
            return this.replace(/^\s+|\s+$/g, '');
        };
    }

    //Access the onreadystatechange event for the XMLHttpRequest
    hr.onreadystatechange = function() {
        if (hr.readyState == 4 && hr.status == 200) {
            var responseText = hr.responseText.trim();
            if (responseText != "signin_failed") { 
                console.log(responseText);
            } else {
                console.log(responseText);
                gebi("signinBtn").style.display = "block";
                gebi("loginEmail").style.borderColor = "red";
                gebi("loginPass").style.borderColor = "red";
            }
        }
    }
    //Send the data to the PHP file for processing and wait for responseText
    hr.send(vars);
}
}

and when the php script returns a value using this code: 当php脚本使用以下代码返回值时:

if (isset($_POST["email"])) {
    echo 'email = '+$_POST["email"];
}

the return value that is logged to the console is '0' even tho there is data present in the forms fields. 即使表单字段中存在数据,记录到控制台的返回值也为“0”。

What is going wrong? 出了什么问题?

The problem is in your PHP script. 问题出在您的PHP脚本中。 If you are trying to concatenate string in PHP use dot . 如果你试图在PHP中连接字符串使用点. . + is used to concatenate string in languages like javascript. +用于在javascript等语言中连接字符串。

echo 'email = ' . $_POST["email"];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM