使用与下拉菜单中的选择相关的数据库信息填充输入字段

时间:2015-07-25 22:53:16

标签: javascript php ajax

我有一张表格。在表单中,我有一个从数据库填充的人名的下拉菜单。表单的其余部分由几个输入字段,地址,电话,电子邮件组成。此信息也存储在同一数据库中。我想要的是当您从下拉菜单中选择一个名称时,其余的表单字段会自动/动态地填充该人员的相关数据。没有刷新,没有提交,没有转到另一个页面填充的字段。我认为这是一个ajax请求,我需要在表单上使用onChange函数,但我只是不确定。不想只使用javascript jQuery。我没有在这方面取得多大成功,这让我很生气。任何帮助,将不胜感激。以下是我的代码片段:

            <option value="" selected="selected" class="firstLine">select a name</option>               

            <?php $query = "SELECT * FROM customers ORDER BY id ASC";

              $run = mysqli_query($dbc, $query);

              while($row = mysqli_fetch_assoc($run)){ 

              $row['fullname'] = $row['first'].' '.$row['surname'];?>

              <option value="<?php echo $row['id'];?>"><?php echo $row['fullname']; ?></option><?php } ?>

        </select>

        <input type="text" name="address" id="address" value="" disabled="disabled"><br />          

        <input type="text" name="phone" id="phone" value="" disabled="disabled"><br />

        <input type="text" name="email" id="email" value="" disabled="disabled"><br />  

2 个答案:

答案 0 :(得分:0)

我经常采用的方法是创建一个小型getData类型的服务端点。

例如在php:*但您可以在c#中轻松完成此操作,就像我在以下链接中所做的那样。 http://chadcollins.com/json-service-output-from-sql-select-using-c/

  1. 在其中创建/services/getData.php文件:
  2. 确保页面仅在会话通过身份验证时运行/检查身份验证
  3. 连接到您的数据库,并通过将sessionUserID传递给您的选择来执行对数据库的查询。
  4. 以json格式回显响应
  5. 使用jquery来处理ajax(使用本机js会有一些代码,但如果你愿意的话也可以。
  6. 在你的UI中的onChange()事件中,考虑使用ajax方法来调用你的services / getData.php脚本
  7. 然后使用返回的json数据的json集合,循环数据并通过id将值分配给表单字段。
  8. 请注意我的示例脚本中如何打印出JSON ajax读取调用所需的格式。如果你想要示例PHP代码让我知道,我可以把它拉到一起。

答案 1 :(得分:0)

这是你需要做的事情

    <option value="" selected="selected" class="firstLine">select a name</option>               

                <?php $query = "SELECT * FROM customers ORDER BY id ASC";

                  $run = mysqli_query($dbc, $query);

                  while($row = mysqli_fetch_assoc($run)){ 

                  $row['fullname'] = $row['first'].' '.$row['surname'];?>

                  <option value="<?php echo $row['id'];?>" onchange="getdata()"><?php echo $row['fullname'];?></option>
    <input type="hidden" name="addressinfo" value="<?php echo $row['address']?>">
    <input type="hidden" name="phoneno" value="<?php echo $row['phone']?>">
    <input type="hidden" name="emailid" value="<?php echo $row['email']?>">

    <?php } ?>

            </select>

            <input type="text" name="address" id="address" value="" disabled="disabled"><br />          

            <input type="text" name="phone" id="phone" value="" disabled="disabled"><br />

            <input type="text" name="email" id="email" value="" disabled="disabled"><br /> 



now you can use javascript to populate the value to those input boxes
<script>
function myFunction() {
var phone= document.getElementById("phoneno").value;
 var address = document.getElementById("addressinfo").value;
var email= document.getElementById("emailid").value;
document.getElementById('phone').value(phone);
document.getElementById('email').value(email);
document.getElementById('address').value(address);
}
</script>