我知道在Stack Overflow上有很多这样的问题,但我真的需要一些与我正在做的事情更相关的事情......所以这就是我发布这个问题的原因。
我有一个带有PHP的HTML表单,它从MSSQL数据库中提取数据以填充下拉框。我希望能够在我从下拉框中选择名称后填充联系信息文本框。到目前为止,如果我选择特定的供应商,我可以将其自动输入到名称,电子邮件和电话号码字段中。但是,我希望在文本字段中输入不同的属性,而不是供应商名称本身。我怎么能这样做?
我的数据库中包含我要导入的名称,电子邮件和电话号码的字段名为MR_POC_N,MR_POC_E和MR_POC_P
" MR_Name"你看到的是包含供应商FYI所有名称的字段。请帮忙!
以下是我的HTML下拉列表代码:
<select name="vendor_dropdown" id="ven" onChange="updateinput();">
<option value="">Choose a Vendor</option>
<?php foreach($users->fetchAll() as $user): ?>
<option><?php echo $user['MR_Name'];?></option>
<?php endforeach; ?>
</select>
这是我在JS中的更新输入函数。我知道这是关闭但是寻找某种方向,因为我不是最好的JS:
function updateinput() {
var e = document.getElementById("ven");
var venSelected = e.options[e.selectedIndex].value;
document.getElementById("name").value=venSelected;
document.getElementById("email").value=venSelected;
document.getElementById("tel").value=venSelected;
}
这是我的联系信息代码:
<table align="center">
<tr>
<td align="right">Name:</td>
<td><input class="textbox" type="text" id="name" name="name"></td>
</tr>
<tr>
<td align="right">Email:</td>
<td><input class="textbox" type="email" id="email" name="email"></td>
</tr>
<tr>
<td align="right">Phone Number:</td>
<td><input class="textbox" type="tel" id="tel" name="number"></td>
</tr>
</table>
答案 0 :(得分:1)
由于您要填充的数据已经在您的“用户”中。变量,实现你想要做的事情的最好方法是使用数据属性。
非常简单,您将数据存储在选项的属性中,然后您可以从js访问这些值,以下是您可以执行此操作的方法:
<select name="vendor_dropdown" id="ven" onChange="updateinput();">
<option value="">Choose a Vendor</option>
<?php foreach($users->fetchAll() as $user): ?>
<option
data-name="<?php echo $user['MR_POC_N'];?>"
data-email="<?php echo $user['MR_POC_E'];?>"
data-phone="<?php echo $user['MR_POC_P'];?>"
>
<?php echo $user['MR_Name'];?>
</option>
<?php endforeach; ?>
</select>
这样,您可以通过程序方式从js端访问所有数据:
var venSelected = e.options[e.selectedIndex];
document.getElementById("name").value = venSelected.dataset.name
这是一个更多关于数据属性的链接,它永远不会伤害;)
https://developer.mozilla.org/en/docs/Web/Guide/HTML/Using_data_attributes