Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JQuery$.post()问题,不执行任何操作_Php_Jquery - Fatal编程技术网

Php JQuery$.post()问题,不执行任何操作

Php JQuery$.post()问题,不执行任何操作,php,jquery,Php,Jquery,我的jQuery函数有一个小问题,下面是代码: function registerUser() { var formData = $('#registerForm').serialize(); var dataPost = $.post('classes/login.php', {type:'register', data: formData} ,function (data) { console.log(data); }); }; 然后,我的l

我的jQuery函数有一个小问题,下面是代码:

function registerUser()
{
    var formData = $('#registerForm').serialize();
    var dataPost = $.post('classes/login.php', {type:'register', data: formData} ,function (data)
    {
        console.log(data);
    });
};
然后,我的login.php文件如下所示:

$type = $_POST['type'];
$email = $_POST['data']['0'];
$password = $_POST['data']['1'];

function register_user($email, $password)
{
 global $db;
//lets add some code to register user
    $stmt = $db->prepare("INSERT INTO user (email, password, role, banned) VALUES (:email, :password, 'level1', 'N')");
    $stmt->execute(array(':email'=> $email, ':password'=> $password));
    $rowCount  = $stmt->rowCount();
   if($rowCount > 0)
   {
    // Success
    //  set session data and etc.
    return "success";
   }
   else
   {
    //  Failed
    return "Error, please try again!";
   }
}
$result = register_user($email, $password);

当我执行它时,我没有得到任何错误或任何东西,只有一个简单的空行,不显示任何数据,数据也没有插入数据库?

您没有调用该函数,它就在那里。你需要把

注册用户$email,$password

在.php页面的底部

更妙的是:更新您的函数以返回true或false而不是success和Error,请重试!。然后你可以有以下的

if(register_user($email, $password)){
    echo "success";
} else {
    echo "failure";
}

你没有调用那个函数,它就在那里。你需要把

注册用户$email,$password

在.php页面的底部

更妙的是:更新您的函数以返回true或false而不是success和Error,请重试!。然后你可以有以下的

if(register_user($email, $password)){
    echo "success";
} else {
    echo "failure";
}

您想通过表单序列化发布额外的参数

function registerUser()
{
    var formData = $('#registerForm').serializeArray();
    formData.push({name: 'type', value: 'register'});
    var dataPost = $.post('classes/login.php', formData ,function (data)
    {
        console.log(data);

    });
};
现在服务器端更新

$type = $_POST['type'];
$email = $_POST['LoginEmail'];
$password = $_POST['LoginPassword'];

function register_user($email, $password)
{
 global $db;
//lets add some code to register user
    $stmt = $db->prepare("INSERT INTO user (email, password, role, banned) VALUES (:email, :password, 'level1', 'N')");
    $stmt->execute(array(':email'=> $email, ':password'=> $password));
    $rowCount  = $stmt->rowCount();
   if($rowCount > 0)
   {
    // Success
    //  set session data and etc.
    return "success";
  }
  else
  {
//  Failed
    return "Error, please try again!";
  }
}
$result = register_user($email, $password);

参考:

您想发布带有表单序列化的额外参数

function registerUser()
{
    var formData = $('#registerForm').serializeArray();
    formData.push({name: 'type', value: 'register'});
    var dataPost = $.post('classes/login.php', formData ,function (data)
    {
        console.log(data);

    });
};
现在服务器端更新

$type = $_POST['type'];
$email = $_POST['LoginEmail'];
$password = $_POST['LoginPassword'];

function register_user($email, $password)
{
 global $db;
//lets add some code to register user
    $stmt = $db->prepare("INSERT INTO user (email, password, role, banned) VALUES (:email, :password, 'level1', 'N')");
    $stmt->execute(array(':email'=> $email, ':password'=> $password));
    $rowCount  = $stmt->rowCount();
   if($rowCount > 0)
   {
    // Success
    //  set session data and etc.
    return "success";
  }
  else
  {
//  Failed
    return "Error, please try again!";
  }
}
$result = register_user($email, $password);


参考资料:

不要说返回成功,只说回显成功;好的,现在我得到了错误,请在我输入空白数据时重试,但当我输入数据并提交时,它不会返回任何结果。即使我改变了它,所有的回音都没有返回。你得到了什么var_dump$_POST['data']?这是var_dump返回的内容:LoginEmail=test&LoginPassword=test这是错误点。等等,我正在准备答案。与其说是回报成功,不如说是回音成功;好的,现在我得到了错误,请在我输入空白数据时重试,但当我输入数据并提交时,它不会返回任何结果。即使我改变了它,所有的回音都没有返回。你得到了什么var_dump$_POST['data']?这是var_dump返回的内容:LoginEmail=test&LoginPassword=test这是错误点。等等,我正在准备答案。$result=register\u user$email,$password;这是我在页面底部看到的,在你提供的代码中,check_login不是一个函数。在你的问题中加入任何相关的代码都是很有帮助的。对不起,我是说注册用户,我不是想忘记它。谢谢你的建议。我改变了我的功能!现在不管怎样,我都会被返回false。根据JAGA89,与我的数据有关的内容看看这个答案你想在$\u POST['data']$result=register\u user$email,$password;这是我在页面底部看到的,在你提供的代码中,check_login不是一个函数。在你的问题中加入任何相关的代码都是很有帮助的。对不起,我是说注册用户,我不是想忘记它。谢谢你的建议。我改变了我的功能!现在不管怎样,我都会被返回false。根据JAGA89,与我的数据有关的内容看看这个答案,你想在$_POST['data']上使用parse_str,在var_dump$_POST['data']中发现字符串问题,这是一个很好的捕获;。好了,现在它有了正确的字符串和分解格式!但我还是每次都失败。认为这与我的PDO语句有关。你还验证了var_dump$_POST['data']吗?是的!我已验证,问题已解决!:我只是想弄明白为什么它总是假的;修好了!它给出了有关表配置和正在发送的输入的错误!:非常感谢你的帮助!在var_dump$_POST['data']中发现字符串问题,这是一个很好的捕获;。好了,现在它有了正确的字符串和分解格式!但我还是每次都失败。认为这与我的PDO语句有关。你还验证了var_dump$_POST['data']吗?是的!我已验证,问题已解决!:我只是想弄明白为什么它总是假的;修好了!它给出了有关表配置和正在发送的输入的错误!:非常感谢你的帮助!