【发布时间】:2016-07-31 14:45:08
【问题描述】:
继续AJAX live checking availability with submit button && AJAX live checking availability with submit button (part 2)
functions.php
<?php
function AddUserForm()
{
?>
<form id="adduser" name="adduser" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Username: <input type="text" id="username" name="username" size="30" maxlength="50" /><span id="usernameCheck"></span><br /><br />
<input type="submit" name="submit" value="Add User" />
<input type="reset" name="reset" value="Reset" />
</form>
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("adduser");
frmvalidator.addValidation("username","req","Please fill up the username.");
</script>
<?php
}
?>
adduser.php
<?php
include_once('functions.php');
?>
<html>
<head>
<script language="JavaScript" src="formvalidator2.js"></script>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.11.1/jquery-ui.js"> </script>
<link rel="stylesheet" href="js/jquery-ui-themes-1.11.1/themes/smoothness/jquery-ui.css">
<script type="text/javascript">
$(document).ready(function(){
var a = false;
$('#username').change(function(){
var userName = $('#username').val();
if(userName == "")
{
$("#usernameCheck").empty();
}
else
{
$.post("getUserName.php", {userName: userName}, function (data)
{
a = data;
$("#usernameCheck").html(data);
});
}
});
//---[1]---
$('#adduser').submit(function(){
return a == 'username valid';
});
});
</script>
</head>
<body>
<?php
AddUserForm();
//---[2]---
if(isset($_POST['submit']) && ($_POST['submit'] == 'Add User'))
{
echo $_POST['username'];
}
?>
</body>
</html>
getUserName.php
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'usertest') OR die(mysqli_connect_error());
$userName = $_POST['userName'];
$q = "select user_name from user where user_name = '".$userName."'";
$r = mysqli_query($dbc, $q);
$num = mysqli_num_rows($r);
if($num)
{
echo 'username invalid';
}
else
{
echo 'username valid';
}
?>
这是我的要求:
(1) 如果用户不填写用户名
- 表单验证器会弹出消息“请填写用户名消息”。
(2)如果用户填写的用户名与数据库不同
- 在用户名字段旁边显示“用户名有效”。
- 单击“添加用户”按钮后将显示用户名。
(3)如果用户填写与数据库相同的用户名
- 在用户名字段旁边显示“用户名无效”。
- 点击“添加用户”按钮后不会提交表单。
从上面的代码中,我发现 [1] 会提交表单。
另一方面,[2] 也会提交表单。
我不想在我的网页中运行多个提交表单。
有什么方法可以满足我的单一提交表单的要求吗?
有人可以帮助我吗?
【问题讨论】:
标签: javascript php jquery mysql ajax