从数据库中选择名称后,如何自动填写输入字段?

时间:2019-03-04 15:48:26

标签: javascript php sql ajax

我有一个需要填写的表格,它的一个字段是雇员姓名,我从一个名为tbl_employee的数据库表中选择了它的值,每个名字都有存储在同一表中的代号,但是我有一个问题,因为我不知道该使用什么代码来自动填充名为codename的输入字段。以下是我的html代码

<div class="form-group">
 <label>Employee Name</label>
  <select name="employee" onchange="getEmp(this.value)" class="form-control">
    <option value="">Select Employee</option>
    <?php foreach($emps as $emp) : ?>
      <option value="<?php echo $emp["employee_id"]; ?>"><?php echo $emp["surname"] . ', ' . $emp["firstname"]; ?></option>
    <?php endforeach; ?>
  </select>
  <div class="help-block with-errors"></div>
</div>
<div class="form-group">
  <label>Code Name</label>
  <input class="form-control" name="codenamer" type="text"/>
  <div class="help-block with-errors"></div>
</div>

您的回复受到高度赞赏

4 个答案:

答案 0 :(得分:0)

要为输入提供值,请向其添加“值”属性:

<input class="form-control" name="codenamer" type="text" value="<?php echo $emp["codename"]; ?>" />

答案 1 :(得分:0)

您可以在此处使用jQuery:

option值中,

所有密码名列的第一

<select name="employee" onchange="getEmp(this.value)" class="form-control">
    <option value="">Select Employee</option>
    <?php foreach($emps as $emp) : ?>
    <option value="<?php echo $emp["codename "]; ?>"> // use codename column in value here.
        <?php echo $emp["surname"] . ', ' . $emp["firstname"]; ?>
    </option>
    <?php endforeach; ?>
</select>

第二,在您的输入字段中添加ID属性:

<input class="form-control" name="codenamer" type="text" id="codenamer" />

大于,您可以使用jQuery在输入字段中添加值:

<script type="text/javascript">
    function getEmp(codename){
        $("#codenamer").val(codename); // add value to codenamer field.
    }
</script>

答案 2 :(得分:0)

如果要执行此操作而无需重新加载页面,则需要Javascript。

首先,将代号添加到使用PHP生成的选项属性中:

<option data-codename="<?= $emp['codename'] ?>" value="<?= $emp["employee_id"]; ?>"><?= $emp["surname"] . ', ' . $emp["firstname"]; ?></option>

然后在JS中,检查所选选项的更改情况,从所选选项中提取代号,并将其data-codename写入代号输入的值。

类似的事情(使用Jquery):

$('#employee-selector').change(function() {
    var selected = $(this).find('option:selected');

    var codename = selected.attr('data-codename');

    //if the above fails, you may have to use this: (note the [0])
    //var codename = selected[0].attr('data-codename');

    $('#codenamer').val(codename);
});

这要求您将id='employee-selector'放在选择元素上,并将id='codenamer'放在代码命名器输入字段上。

答案 3 :(得分:0)

此问题已解决。我只是改写上面给出的代码。

<script type="text/javascript">
    function getEmp(codename){
         var res = codename.split(" ", 1 );
        document.getElementById("codenamer").value=res;
    }
</script>

呼叫者进入我的输入字段

id="codenamer"

感谢所有受访者。