我有两个字段'name'和'username'。我正在检查用户名可用性,我可以检查。我的问题在于我显示表单的方式。我想实现
我想用html,javascript和php实现这一点。我不想使用任何其他语言或技术
Login.php正在构建表单。
<?php
include 'login2.php';
function form($name, $username)
{
?>
<form name="mylogin" method="post">
<table>
<tr><td>Name</td>
<td><input type="text" id="name" name="name" value="<?php echo $name?>" required></td></tr>
<tr><td>Username</td>
<td><input type="text" id="user" name="user" value="<?php echo $username?>" required></td>
<td id="messgae"></td>//want to display message over here have tried value"<?php echo $message"?>
</tr>
<tr><td><input type="submit" name="submit" value="Username Availability Check"></td></tr>
<?php usercheck()?>
</table>
</form>
<?php
}
?>
<?php
form('','')
?>
在Login2.php中我只是检查用户名,现在我没有插入值,因此插入查询被注释并用于发回用户输入的值。我面临的问题是,单击提交按钮或用户可用性检查按钮后,表单将显示两次。我知道它正在发生,因为我正在调用该函数两次但是如何避免它?
代码
<?php
function connect()
{
mysql_connect('localhost','root','password');
mysql_select_db('loginprac');
}
function usercheck()
{
if(isset($_POST['submit']))
{
connect();
$name=$_POST['name'];
$user = mysql_real_escape_string($_POST['user']);
$check_for_username = mysql_query("SELECT user from userpage WHERE user = '$user'");
$count = mysql_num_rows($check_for_username);
if($count != 0)
{
form($name,$user);
}
}
}
/*function insert()
{
connect();
if(isset($_POST['submit']))
{
usercheck();
$name=$_POST['name'];
$user=$_POST['user'];
$sql1= "INSERT INTO userpage (name,user) VALUES ('$name','$user')";
mysql_query($sql1);
}
}*/
?>
答案 0 :(得分:0)
在函数表单()之外获取<form>
。仅将消息和用户名传递给函数。
答案 1 :(得分:0)
如果你想使用javascript, 单击提交按钮/ useravailability检查按钮,调用ajax函数,然后可以使用新输入的用户名转到您的PHP代码(以检查可用性)。 检查可用性和 在那里打印你的消息。 然后在文档中替换实际需要该消息的html内容(使用ajax响应文本)。
here对这种ajax函数的介绍
或尝试jquery ajax