Я хочу показать сообщение о существующем имени пользователя под тегом ввода имени пользователя, а при отображении сообщения другое данные не теряются в php - PullRequest
0 голосов
/ 31 мая 2018

Я хочу показать сообщение о существующем имени пользователя под тегом ввода имени пользователя, а при отображении сообщения другое данные не теряются.Но эти коды не работают.

Вот мой код для существующего имени пользователя:

      <?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 голосов
/ 31 мая 2018

Вам необходимо предоставить атрибут значение для полей формы.Например:

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

ИЛИ

<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>
0 голосов
/ 31 мая 2018

при отображении сообщения «другие данные не теряются»

Какие данные?!

ОК, поэтому вы должны сохранить сообщение об ошибке 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>

Проверьте и эти ответы тоже Вставить Php в HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...