【问题标题】:Populate Textfields Depending on Dropdown Selection根据下拉选择填充文本字段
【发布时间】:2016-09-27 13:20:16
【问题描述】:

我知道 Stack Overflow 上有很多类似这样的问题,但我确实需要一些与我正在做的事情更相关的问题......所以这就是我发布这个问题的原因。

我有一个带有 PHP 的 HTML 表单,它从 MSSQL 数据库中提取数据以填充下拉框。从下拉框中选择名称后,我希望能够填充联系信息文本框。到目前为止,如果我选择特定供应商,供应商名称会自动输入到名称、电子邮件和电话号码字段中。但是,我希望在文本字段中输入不同的属性,而不是供应商名称本身。我怎么能这样做?

数据库中包含我想要导入的姓名、电子邮件和电话号码的字段名为 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>

这是我在 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>

【问题讨论】:

    标签: javascript php html sql-server auto-populate


    【解决方案1】:

    由于您要填充的数据已经在您的“$user”变量中,实现您想要做的最好的方法是使用数据属性。

    这很简单,您将数据存储在您选择的属性中,然后您可以从您的 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

    【讨论】:

    • 好的,只要它只在其中一个字段中自动填充名称,而不是全部 3 个......所以我只需要能够让它填充电子邮件和电话号码现在的盒子......为了解决这个问题会做些什么?
    • 我想通了!!非常非常感谢你!!问题解决了!!
    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多