我想在用户名输入标签下显示关于现有用户名的消息,当显示消息时,其他数据不会在php中丢失

时间:2018-05-31 08:09:35

标签: php html registration

我希望在用户名输入标记下显示有关现有用户名的消息,并在显示消息时显示其他数据不会丢失。但是这些代码不起作用。

以下是我现有用户名的代码:

      <?php
            //click register button
            if(isset($_POST['register']))
            {
                //Retrieve the field values from our registration form.
                    $username = $_POST['username'];

            //Now, we need to check if the supplied username already exists.

            $sql = "SELECT COUNT(user_username) AS num FROM users WHERE user_username = :username";
            $stmt = $dbh->prepare($sql);

            $stmt->bindValue(':username', $username);

            $stmt->execute();

            $row = $stmt->fetch(PDO::FETCH_ASSOC);
            if($row['num'] > 0){

               echo "<script>";
               echo "$(document).ready(function(){document.getElementById('existing_username').innerHTML = 'existing'})";
               echo "</script> ";

//the following code is work but other data like name, password is lost in input element                     
//echo '<div class="alert alert-danger"> <b>'.$username.'</b> This username already exist!</div>'; 
                } }  
    ?>

这是输入数据的代码:

 <form action="register.php" method="post">
               <div class="row"> 
                  <div class="col-sm-6">  
                     <div class="form-group">          
                        <label for="username"><b>USERNAME</b></label> 
                         <input class="form-control" type="text" id="username" name="username">
                       </div>
                   </div>
                </div>
<span class="text-danger" id="existing_username"></span>
    <button class="btn btn-primary" type="submit" name="register" value="Register">Register</button>
            </form>

2 个答案:

答案 0 :(得分:0)

  

当显示消息时,其他数据不会丢失

什么数据?!

好的,所以你应该将Username exist的错误信息存储在变量中,如下所示:

<?php
     //click register button
            if(isset($_POST['register']))
            {
                //Retrieve the field values from our registration form.
                    $username = $_POST['username'];

            //Now, we need to check if the supplied username already exists.

            $sql = "SELECT COUNT(user_username) AS num FROM users WHERE user_username = :username";
            $stmt = $dbh->prepare($sql);

            $stmt->bindValue(':username', $username);

            $stmt->execute();

            $row = $stmt->fetch(PDO::FETCH_ASSOC);
            if($row['num'] > 0){

               echo "<script>";
               echo "$(document).ready(function(){document.getElementById('existing_username').innerHTML = 'existing'})";
               echo "</script> ";


                $error = "<b>".$username."</b> :This username already exist!"; 
//this code is work but other data is lost

                } }  

?>

<form action="register.php" method="post">
       <div class="row"> 
          <div class="col-sm-6">  
             <div class="form-group">          
                <label for="username"><b>USERNAME</b></label> 
                 <input class="form-control" type="text" id="username" name="username">
               </div>
           </div>
        </div>
</form>

检查此答案Embed Php in Html

答案 1 :(得分:0)

您需要为表单字段提供 value 属性。例如:

<input class="form-control" type="text" id="username" name="username" value="<?php echo $username ?>">

OR

<input class="form-control" type="text" id="name" name="name" value="<?php echo $name ?>">

当然,您需要先在代码中定义这些变量。如果已提交表单 - 从$ _POST获取它们。如果不是 - 将它们设置为空值。

包含2个字段的代码示例:

<?php

$name = null;
$username = null;

//click register button
if (isset($_POST['register'])) {
    //Retrieve the field values from our registration form.
    $name = $_POST['name'];
    $username = $_POST['username'];

    //Now, we need to check if the supplied username already exists.

    $sql = "SELECT COUNT(user_username) AS num FROM users WHERE user_username = :username";
    $stmt = $dbh->prepare($sql);

    $stmt->bindValue(':username', $username);

    $stmt->execute();

    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($row['num'] > 0) {

        echo "<script>";
        echo "$(document).ready(function(){document.getElementById('existing_username').innerHTML = 'existing'})";
        echo "</script> ";

        $error = "<b>".$username."</b> :This username already exist!";
        //this code is work but other data is lost
    }
}

?>

<form action="register.php" method="post">
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="name"><b>NAME</b></label>
                <input class="form-control" type="text" id="name" name="name" value="<?php echo $name ?>">
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="username"><b>USERNAME</b></label>
                <input class="form-control" type="text" id="username" name="username" value="<?php echo $username ?>">
            </div>
        </div>
    </div>
    <span class="text-danger" id="existing_username"></span>
    <button class="btn btn-primary" type="submit" name="register" value="Register">Register</button>
</form>