我有一个表单,当按下按钮时提交数据。如果表单是成功的,则表单不返回任何内容。当表单出错时,它会发送一个错误。从本质上讲,我希望它在数据插入到数据库之后转发到一个页面。
我用netbeans进行了一次调试,如果成功,它会从php返回回声。仅使用浏览器时不会发生这种情况。我试着说
[code] if (response === 'Saved') {
do this}else{do that}[code]
但没有快乐
<input type = "submit" name = "register" id = "reg_btn" >
$('#reg_btn').on('click', function(){
var email = $('#email').val();
var fname = $('#fname').val();
var lname = $('#lname').val();
var password = $('#password').val();
if (email_state === false || fname_state === false || lname_state === false || pword_state === false) {
$('#error_msg').text('Fix the errors in the form first');
return false;
}else if (email_state === true && fname_state === true && lname_state === true && pword_state && true)
{
// proceed with form submission
$.ajax({
url: '../PHP/reg2.php',
type: "post",
data: {
'save' : 1,
'email' : email,
'fname' : fname,
'password' : password,
'lname' : lname
},
success: function(response){
alert(response);
window.location = 'succesful_registration.html';
}
}
});
}
});
$db = mysqli_connect ("localhost","snapitlive","2XEq6NI0QortZIdh","snapitlive");
if($db == false)
{
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$webform = (filter_Input(\INPUT_POST, 'save', FILTER_SANITIZE_SPECIAL_CHARS));
if ($webform) {
$first_name = filter_input(\INPUT_POST,'fname', FILTER_SANITIZE_SPECIAL_CHARS);
$last_name = filter_input(\INPUT_POST,'lname',FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_input(\INPUT_POST,'email',FILTER_SANITIZE_SPECIAL_CHARS);
$mobile = filter_input(\INPUT_POST,'mobile', FILTER_SANITIZE_SPECIAL_CHARS);
$uniqid = \uniqid();
$password = filter_input(\INPUT_POST,'password',FILTER_SANITIZE_SPECIAL_CHARS);
$hashpass = password_hash($password, PASSWORD_DEFAULT);
$pw_uniqid = \uniqid();
/*$sql = "SELECT * FROM users WHERE u_ea='$email'";
$results = mysqli_query($db, $sql);
if (mysqli_num_rows($results) > 0) {
echo "exists";
exit();
}else{*/
$sql = "INSERT INTO users (u_id, u_fn, u_ln, u_ea, u_mp) VALUES ('$uniqid','$first_name', '$last_name', '$email', '$mobile');";
$sql .="INSERT INTO passwords(p_id, p_u_id, password, current) VALUES ('$pw_uniqid', '$uniqid', '$hashpass', 1);";
$results = \mysqli_multi_query($db, $sql);
echo 'Saved';
exit();
mysql_close($db);
}
我希望看到一条警告消息说已保存,然后将其定向到我提到的位置。相反,我只需要刷新页面即可。
发布于 2019-07-24 05:06:26
您有括号错误的脚本结尾,这是正确的方式和窗口位置必须是两个window.location.assign("url") OR window.location.replace("url")
<script type="text/javascript">
$('#reg_btn').on('click', function(){
var email = $('#email').val();
var fname = $('#fname').val();
var lname = $('#lname').val();
var password = $('#password').val();
if (email_state === false || fname_state === false || lname_state === false || pword_state === false) {
$('#error_msg').text('Fix the errors in the form first');
return false;
}else if (email_state === true && fname_state === true && lname_state === true && pword_state && true)
{
// proceed with form submission
$.ajax({
url: '../PHP/reg2.php',
type: "post",
data: {
'save' : 1,
'email' : email,
'fname' : fname,
'password' : password,
'lname' : lname
},
success: function(response){
alert(response);
window.location.replace("succesful_registration.html");
}
});
}
});
https://stackoverflow.com/questions/57171903
复制相似问题