JQuery $.post() 问题,没有执行任何操作
Posted
技术标签:
【中文标题】JQuery $.post() 问题,没有执行任何操作【英文标题】:JQuery $.post() issue, nothing is performed 【发布时间】:2015-09-04 11:18:26 【问题描述】:我的 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);
当我执行它时,除了一个不显示任何数据且数据没有插入数据库的简单空行之外,我没有收到任何错误或任何其他信息?
【问题讨论】:
而不是返回成功只是说echo "success";
好的,所以现在我在输入空白数据时收到“错误,请重试”,但是当我输入数据并提交时,它什么也不返回。即使我将其全部更改为回声而不是返回。
你得到了什么var_dump($_POST['data']);
?
这是 var_dump 返回的内容:LoginEmail=test&LoginPassword=test
这就是错误点。等等,我正在准备答案。
【参考方案1】:
您想通过表单序列化发布额外参数。
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);
参考:click here
【讨论】:
很好地解决了var_dump($_POST['data']);
中的字符串问题。
好的,现在它有了正确的字符串和分解的格式!但我还是每次都失败。现在认为这与我的 PDO 声明有关。
您还验证过var_dump($_POST['data']);
吗?
是的!我验证了,这个问题已经解决了! :D 只是想弄清楚为什么它总是错误的;
已修复!它给出了关于表配置和正在发送的输入的错误! :) 非常感谢您的帮助!【参考方案2】:
你没有调用那个函数,它就在那里。你需要把
register_user($email, $password);
在 .php 页面的底部。
甚至更好:更新您的函数以返回真或假,而不是“成功”和“错误,请重试!”。然后你可以拥有以下
if(register_user($email, $password))
echo "success";
else
echo "failure";
【讨论】:
$result = register_user($email, $password);是我在页面最底部的内容 在您提供的代码中, check_login 不是一个函数。在您的问题中包含任何相关代码会很有帮助。 对不起,我的意思是 register_user() 并不想忘记它。 感谢您的建议。我改变我的功能!现在无论如何我都会返回假。根据 jaga89 与我的数据有关 看这个答案***.com/a/3817220/3112492你想在$_POST['data']上使用parse_str以上是关于JQuery $.post() 问题,没有执行任何操作的主要内容,如果未能解决你的问题,请参考以下文章
jQuery .post() 函数不适用于 Bootstrap