-1

我有两个字段“名称”和“用户名”。我正在检查用户名的可用性,我可以检查。我的问题在于我显示表单的方式。我想实现

  1. 在显示用户名的同一行但在第三列中显示消息。
  2. 在显示消息时,它应该显示以前输入的值。

我想用 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);
    }

}*/
?>
4

2 回答 2

0

如果你想使用 javascript,点击提交按钮/用户可用性检查按钮,调用一个 ajax 函数,然后可以使用新输入的用户名转到你的 php 代码(检查可用性)。检查可用性并在那里打印您的消息。然后在您真正想要消息的文档中替换 html 内容(使用 ajax 响应文本)。

这里介绍一下这样的ajax函数

或尝试 jquery ajax

于 2013-07-31T07:30:41.987 回答
0

获取<form>函数form()的外部。仅将消息和用户名传递给函数。

于 2013-07-31T07:22:10.737 回答