基于HTML下拉选择填充输入
Populating Inputs Based on HTML Dropdown Selection
我知道在Stack Overflow上有很多这样的问题,但我真的需要一些与我正在做的事情更相关的东西…所以这就是为什么我张贴这个问题。
我有一个HTML表单与PHP,从一个MSSQL数据库中提取数据,以填充下拉框。一旦我从下拉框中选择了一个名字,我希望能够填充联系人信息文本框。到目前为止,如果我选择一个特定的供应商,供应商名称会自动输入到name、Email和Phone Number字段中。但是,我希望在文本字段中输入不同的属性,而不是供应商名称本身。我怎么能这么做?
我要导入的数据库中包含姓名、电子邮件和电话号码的字段命名为MR_POC_N、MR_POC_E和MR_POC_P
您看到的"MR_Name"是包含所有供应商名称的字段,仅供参考
下面是我的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>
这是我的联系信息代码:
<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>
这是我在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;
}
保持你的脚本和现在一样,但是改变你的JavaScript和下拉菜单。在下拉菜单中尝试
<option value = "<?=$user['MR_Name'];?>"><?php echo $user['MR_Name'];?></option>
您想要发出所谓的AJAX请求。这将允许您转到另一个页面获取一些数据(在您的示例中,您将获取一些用户信息,并将其返回到该页面,而无需用户实际更改页面!
查看此链接了解更多关于AJAX的信息。
您的AJAX调用将看起来像这样。
function updateinput() {
var e = $("#ven").val();
$.ajax({
url: "get-user-info.php",
type: "POST",
data: {e: e},
success: function(data){
data = JSON.parse(data);
var email = data[0];
var tel = data[1];
$("#email").val(email);
$("#tel").val(tel);
}
});
}
该脚本首先获取下拉列表的选定值。然后它开始进行AJAX调用,就像提交表单一样,我们将值发送到下一页。因此,AJAX将对话的页面是get-user-info.php
,它从数据中发布值。数据通过e
发送,这就是下拉值。成功后,它将执行下面的代码,将数据从PHP数组解析为JavaScript,然后说email是数组的第一个值tel是数组的第二个值。然后我们说ID为'email'的输入现在等于数组中的email
, ID为'tel'的输入现在等于数组中的tel
。
你现在需要在同一个目录下创建一个名为get-user-info.php
在此脚本中调用数据库,其中用户与所选值e
相同,并返回一个PHP数组,如下所示:
array(email, telephone)
get-user-info.php
的伪代码:
<?php
$e = $_POST["e"];
//Do your SQL
//In the loop
$array[] = $user["email"];
$array[] = $user["tel"];
echo json_encode($array);
?>
- 从确认框中预填充输入文本框
- 点击填充输入的按钮&提交
- 如何自动填充输入文本框值以与名称相同
- 使用 JSON 数组填充输入字段
- 使用 Jquery 在 SharePoint 2007 上自动填充输入文本
- 如何使用Javascript填充输入文本字段
- IE JavaScript参数和填充输入字段
- 使用其他输入值自动填充输入
- 在表单提交中填充输入字段
- AngularJS-用下拉菜单填充输入文本字段
- 如何使用选中的复选框文本自动填充输入文本字段
- 如果选择'其他'然后填充输入字段
- casperjs根据他的xpath填充输入
- Shiny中未读取的自动填充输入
- Javascript复选框填充输入并将不同的值传递给表单
- 壁虎浏览器不会在加载时填充输入
- 用网址图像填充输入
- 单击用文本填充输入框
- 如何使用 Javascript 动态加载 iFrame 源代码和自动填充输入表单
- 如何用数据库中的值填充输入文本字段 单击复选框