Javascript 基于HTML下拉选择填充输入
我知道在堆栈溢出上有很多像这样的问题,但我真的需要一些与我正在做的事情更相关的东西…所以这就是我发布这个问题的原因 我有一个带有PHP的HTML表单,它从MSSQL数据库中提取数据以填充下拉框。一旦我从下拉框中选择姓名,我希望能够填充联系人信息文本框。到目前为止,如果我选择了一个特定的供应商,供应商名称会自动输入到名称、电子邮件和电话号码字段中。但是,我希望在文本字段中输入不同的属性,而不是供应商名称本身。我怎么能这样做 我希望导入的数据库中包含姓名、电子邮件和电话号码的字段名为MR_POC_N、MR_POC_E和MR_POC_p 此外,您看到的“MR_Name”字段包含供参考的所有供应商名称 以下是我的HTML下拉列表代码:Javascript 基于HTML下拉选择填充输入,javascript,php,html,sql-server,auto-populate,Javascript,Php,Html,Sql Server,Auto Populate,我知道在堆栈溢出上有很多像这样的问题,但我真的需要一些与我正在做的事情更相关的东西…所以这就是我发布这个问题的原因 我有一个带有PHP的HTML表单,它从MSSQL数据库中提取数据以填充下拉框。一旦我从下拉框中选择姓名,我希望能够填充联系人信息文本框。到目前为止,如果我选择了一个特定的供应商,供应商名称会自动输入到名称、电子邮件和电话号码字段中。但是,我希望在文本字段中输入不同的属性,而不是供应商名称本身。我怎么能这样做 我希望导入的数据库中包含姓名、电子邮件和电话号码的字段名为MR_POC_N
<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>
保持脚本与当前相同,但更改JavaScript和下拉列表。在您的下拉列表中,尝试执行以下操作
<option value = "<?=$user['MR_Name'];?>"><?php echo $user['MR_Name'];?></option>
此脚本首先获取下拉列表的选定值。然后启动maketheajax调用,就像提交表单一样,我们将把值发布到下一页。因此,AJAX将讨论的页面是get user info.php
,它将从数据中发布值。数据通过e
发送,这就是下拉值。成功后,它将执行下面的代码,这表示将数据从PHP数组解析为JavaScript,然后表示email是数组的第一个值,tel是数组的第二个值。然后我们说ID为“email”的输入现在等于数组中的email
,ID为“tel”的输入现在等于数组中的tel
现在需要在名为get user info.php
在此脚本中,调用数据库,其中用户与所选值e
相同,并返回如下所示的PHP数组:
阵列(电子邮件、电话)
这是PHP脚本的伪代码get user info.PHP
:
<?php
$e = $_POST["e"];
//Do your SQL
//In the loop
$array[] = $user["email"];
$array[] = $user["tel"];
echo json_encode($array);
?>
我非常愿意使用它……我对它不太熟悉,但如果这就是让它工作所需要的,那么我完全支持它!我不小心删除了我的旧评论,很抱歉。要使JQuery正常工作,请在标记中添加以下内容:
好的!我明白了!我已经为您添加了一个答案,请让我知道它是否有效。。。我还没有测试过它,因为我必须尽快完成。我很乐意帮助任何我能帮助的地方,所以我认为这在很大程度上是有意义的,但是,你能解释一下如何打电话并从数据库中获取信息吗?这就是我现在似乎有点不清楚的地方。因此,在PHP脚本get user info.PHP
中,您需要获取用户信息e,无论值是什么。因此,如果每个用户都有一个ID,并且您设置了
,那么Jquery将获得该值并将其发送到第二个脚本。您想使用此ID从数据库中获取电子邮件和电话。对不起,我刚刚意识到您告诉我专栏没有告诉我。那样的话,我会修改我的密码。您希望对名称进行查找。如果它不是表中的主键,您可能会遇到问题。对不起,我刚才很忙…但是我要查找的列不是主键。我是否能够编写一个查询,将这些列导入脚本,然后为此编写相应的代码?
<option value = "<?=$user['MR_Name'];?>"><?php echo $user['MR_Name'];?></option>
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);
}
});
}
<?php
$e = $_POST["e"];
//Do your SQL
//In the loop
$array[] = $user["email"];
$array[] = $user["tel"];
echo json_encode($array);
?>