如何从下拉菜单中选择后自动填充表格

时间:2017-03-31 11:39:04

标签: javascript php html mysql

所以我创建了一个自定义表单,以便我可以使用页面编辑我的用户数据。 我有一个下拉菜单,其中包含数据库的用户名。

我要做的是,当我点击我想要成本的用户名时,用户名的所有数据都会进入下面的表格(如电子邮件,密码等)

This pict explain what i wanted to do

这是我的下拉代码:



 <h1>Costumize Data</h1>
        <hr>
        <dl><dt>Select data to costumize</dt></dl>
        <select class="form-control" name="userlist">
            <?php
               $servername = "localhost";
               $username = "root";
               $password = "";
               $dbname = "gamestore";

            // Create Connection
            $conn = mysqli_connect($servername, $username, $password, $dbname);

            // Check connection
            if (!$conn) {
                trigger_error("Connection failed: " . mysqli_connect_error());

            }
            //Run Query
            $stmt = "SELECT DISTINCT `username` FROM `login` ORDER BY user_id ASC";
            $result = mysqli_query($conn,$stmt) or die(mysqli_error($conn));
            while(list($category) = mysqli_fetch_row($result)){
                echo '<option value="'.$category.'">'.$category.'</option>';
            }
            mysqli_close($conn);
            ?>

        </select>
        <hr>
&#13;
&#13;
&#13;

这是我的表格

&#13;
&#13;
<form class="form-horizontal" method="post" action="edit_user.php">
  <div class="form-group">
    <label class="control-label col-sm-4" for="username">Username:</label>
    <div class="col-sm-6">
      <input type="username" class="form-control" name="username" placeholder="Enter username">
    </div>
  </div>
  <div class="form-group">
    <label class="control-label col-sm-4" for="email">Email:</label>
    <div class="col-sm-6"> 
      <input type="email" class="form-control" name="email" placeholder="Enter email">
    </div>
  </div>
    <div class="form-group">
    <label class="control-label col-sm-4" for="country">Country:</label>
    <div class="col-sm-6"> 
      <input type="country" class="form-control" name="country" placeholder="Enter Country">
    </div>
  </div>
  <div class="form-group">
    <label class="control-label col-sm-4" for="password">Password:</label>
    <div class="col-sm-6"> 
      <input type="password" class="form-control" name="password" placeholder="Enter password">
    </div>
  </div>
  <div class="form-group"> 

<label class="control-label col-sm-4" for="user_type">Level:</label>
<div class="col-sm-4"> 
<select class="form-control" name="user_type">
    <option value="user">User</option>
    <option value="admin">Admin</option>
</select>
</div>
</div><div class="form-group"> 
    <div class="col-sm-offset-4 col-sm-7">
      <a href="delete_user.php"><button type="submit" class="btn btn-default">Delete</button></a>
      <button type="submit" class="btn btn-primary">Edit</button>
    </div>
  </div>
</form>
&#13;
&#13;
&#13;

谢谢你!

1 个答案:

答案 0 :(得分:1)

第一件事:从不,看,永远不要把数据库规则放到前端。创建其他文件并将内容放在那里。

第二:你有一种优雅的方法:使用ajax调用php文件来路由/分解用户对象,并将数据检索到你的模态。

在触发事件更改时将绑定放入下拉列表,调用ajax函数,使用db例程检索数据并返回用户对象,并在成功回调时使用

将该对象内容放入前端
document.getElementsByTag/ByName/getElementById.value

,等等。

要研究你需要的东西,那就: https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName