捕获由表单提交打开的PHP文件的返回值


catch return value form a php file opened by a form submit

我在html中提交一个表单

<form id="register" onsubmit="getRegFormErr()" method="post">
    <label for="username">Username</label>
    <input id="username" type="text" name="username">

现在在register。php文件中,如果出现问题,我将返回

if (!isset($username, $password, $email, $securecode, $acctype)) {
    return INVALID_FORM;
}

如何从PHP文件返回到javascript中的变量

我尝试了一点js,但不工作

function getRegFormErr() {
    $.ajax({
    type: "GET",
        url: "php/register.php",
    success: function(data, textStatus, jqXHR) {
        console.log(data);
    },
    error: function (error) {
        console.log(error);
    }
    });
}

谢谢你的回答

试试这个从HTML代码中删除onsubmit="getRegFormErr()"在js代码中写如下

$('form#register').submit(function(){
    $.ajax({
        type: "POST",
        url: "php/register.php",
        data: $('form#register').serialize(),
        success: function(data, textStatus, jqXHR) {
            console.log(data);
        },
        error: function (error) {
            console.log(error);
        }
    });
});

不确定AJAX,但假设这是正确的,并且假设定义了INVALID_FORM,您需要输出结果。试一试:

echo INVALID_FORM;

代替:

return INVALID_FORM;

此外,在register.php中,您应该有如下内容:

define('INVALID_FORM', 'The form was not completed');

1)您的表单是针对而不是使用ajax,由于缺乏RETURN FALSE;和使用"POST",替换:<form id="register" onsubmit="getRegFormErr()" method="post">:

<form id="register" onsubmit="return getRegFormErr()" method="post">
function getRegFormErr() {
    $.ajax({
    type: "POST", //Use POST
        url: "php/register.php",
    success: function(data, textStatus, jqXHR) {
        console.log(data);
    },
    error: function (error) {
        console.log(error);
    }
    });
return false;
}

或者(更好),使用Jquery:

<form id="register" method="post">
function getRegFormErr() {
    $.ajax({
    type: "POST", // Use POST
        url: "php/register.php",
    success: function(data, textStatus, jqXHR) {
        console.log(data);
    },
    error: function (error) {
        console.log(error);
    }
    });
    return false;// FALSE
}
$("#register").submit(getRegFormErr);

2)使用"POST vars",替换:

if (!isset($username, $password, $email, $securecode, $acctype)) {

由:

if (!isset($_POST['username'], $_POST['password'], $_POST['email'], $_POST['securecode'], $_POST['acctype'])) {