gpt4 book ai didi

javascript - phonegap使用ajax提交表单数据到mysql然后换页的一些问题

转载 作者:行者123 更新时间:2023-11-30 23:08:20 25 4
gpt4 key购买 nike

我正在开发一个 phonegap 应用程序,我正在尝试提交我的注册表单并通过 ajax 将数据发送到 MySQL,然后在提交后我想弹出一个页面来通知用户它是否成功。我可以发送数据并获得一个弹出页面,但似乎我无法获得将在下面显示的对话框页面。

这是我的html

    <html> 
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height
<link some css here….>
<script src="js/jquery-1.10.2.js" ></script>
<script src="js/jquery.mobile-1.4.0.js" ></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script src="js/signup.js"></script>
<script>

function onBodyLoad(){
document.addEventListener("deviceready",onDeviceReady,false);
}

</script>
<title>DTSB System</title>
</head>

继续

<body onload="onBodyLoad()">
<div data-role="page" id="signinpage" >
<div data-role="header" data-theme="b">
<h1>Sign in</h1>
</div>
<div data-role="content" data-theme="a">
<form name="signinform" id="signinform" align="center" method="post" action="home.html" data-ajax="false">
<div data-role="fieldcontain">
<input type="text" name="fusername1" id="fusername1" placeholder="Username" class="required">
</div>
<div data-role="fieldcontain">
<input type="password" name="fpasswd1" id="fpasswd1" placeholder="Password" class="required">
</div>
<input type="submit" name="signinsubmit" data-inline="true" data-icon="arrow-u-r" data-transition="flip" value="Sign in">
<a href="#signuppage" data-role="button" data-inline="true" data-icon="edit" data-transition="slidedown">Sign up</a>
</form>
</div>
<div data-role="footer" data-theme="b" data-position="fixed">
<h1>IZUMEI</h1>
</div>
</div>

<div data-role="page" id="signuppage" data-theme="a">
<div data-role="header" data-theme="b">
<h1>Sign up</h1>
</div>
<div data-role="content" >
<form name="signupform" id="signupform" align="center">
<div data-role="fieldcontain">
<label for="fusername2">Username:</label>
<input type="text" name="fusername2" id="fusername2" class="required" minlength="3">
</div>
<div data-role="fieldcontain">
<label for="fpasswd2">Password:</label>
<input type="password" name="fpasswd2" id="fpasswd2" class="required" minlength="5">
</div>
<div data-role="fieldcontain">
<label for="fconfirmpasswd">Confirm Password:</label>
<input type="password" name="fconfirmpasswd" id="fconfirmpasswd" class="required passmatch" minlength="5">
</div>
<div data-role="fieldcontain">
<label for="femail">E-mail:</label>
<input type="email" name="femail" id="femail" class="required">
</div>
<input id="register" type="submit" data-inline="true" value="Registration">
<a href="#signinpage" data-role="button" data-inline="true" data-icon="delete" data-iconpos="right" data-transition="slideup">Cancel</a>
</form>
</div>
<div data-role="footer" data-theme="b" data-position="fixed">
<h1>IZUMEI</h1>
</div>
</div>

<div data-role="page" id="dialogY" data-theme="a" data-dialog="true">
<div data-role="header" data-theme="b">
<h1>Successfully sign up</h1>
</div>
<div data-role="content">
<p align="center">Congradulations!Welcome to be one of us!</p>
</div>
<div data-role="footer" data-theme="a" align="center" data-position="fixed">
<a href="#signinpage" type="button">Sign in now</a>
</div>
</div>

<div data-role="page" id="dialogN" data-theme="a" data-dialog="true" data-rel="back">
<div data-role="header" data-theme="b">
<h1>Sign up failed</h1>
</div>
<div data-role="content">
<p align="center">Sorry, something wrong when sign up, <span>please try again later</span></p>
</div>
</div>

</body>
</html>

这是我的php文件

$username=mysql_real_escape_string($_POST['fusername2']);
$password=sha1($_POST['fpasswd2']);
$email=mysql_real_escape_string($_POST['femail']);

$sql = "INSERT INTO users (user_name, user_pass, user_email)";
$sql .= "VALUES('$username','$password','$email')";

$exist = "SELECT * FROM users WHERE user_name= '". $username . "'";
$query_result = mysql_query($exist, $con);

if(mysql_num_rows($query_result) == 0) {
if(isset($username)&& isset($password) && isset($email)){
if(mysql_query($sql, $con)){
echo "Insert success!";
}else{
die ('Error: ' . mysql_error());
}
}else{
die ('Error: There are empty fields needed to be filled' . mysql_error());
}
}else{
die ('Error: User already exist' . mysql_error());
}

mysql_close($con);
?>

这是我的js文件

$(document).on("pageshow", "#signuppage", function() {
$.validator.addMethod("passmatch", function(value) {
return value == $("#fpasswd2").val();
}, 'Confirmation password must match.');
});


$(document).ready(function(){

$('#signupform').validate();

$('#signupform').submit(function(event){

event.preventDefault();

var formData = $(this).serialize();

$.ajax({
type:'POST',
data: formData,
url:'http://localhost/doctor/insert_info.php',
cache: false ,
success: function(){
$.mobile.changePage("#dialogY");
}
error: function(){
$.mobile.changePage("#dialogN");
}
});

return false;
});
});

试了很多方法还是进不去dialogY页面,好像提交正确数据也得不到成功反馈。当我在模拟器中运行这些代码时它有效,但在 safari 上它失败了。我的代码有问题吗?

最佳答案

是否所有 Assets 都从“本地主机”(我在 ajax 调用中看到)提供服务?如果不是,Safari 可能会因 the Same-Origin policy 而失败.

只要确保您将我们所有的资源都指向同一个主机名即可。

当您在 Safari 中打开错误报告时,您是否在控制台中看到任何内容?

关于javascript - phonegap使用ajax提交表单数据到mysql然后换页的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com