我知道在堆栈溢出上有很多类似这样的问题,但我真的需要一些与我正在做的事情相关的东西…所以这就是我发布这个问题的原因。
我有一个带有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>

这是我的联系信息代码:
<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中的update输入函数。我知道这是关闭,但寻找某种方向,因为我不是最好的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的更多信息,请查看this链接。
您的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);
        }
    });
}

此脚本首先获取下拉列表的选定值。然后启动make the AJAX调用,就像提交表单一样,我们将值发布到下一页。因此,AJAX将与之交谈的页面是get-user-info.php它从数据中发布值。数据通过e发送,这就是下拉值。成功后,它将执行下面的代码,其中表示将数据从PHP数组解析为JavaScript,然后表示email是数组的第一个值,tel是数组的第二个值。然后我们说ID为“email”的输入现在等于数组中的email,ID为“tel”的输入现在等于数组中的tel
现在需要在名为get-user-info.php的同一目录中创建一个php脚本
在这个脚本中,调用您的数据库,其中用户与所选值相同e,并返回如下所示的PHP数组:
array(email, telephone)
这是PHP脚本的伪代码:
<?php

$e = $_POST["e"];
//Do your SQL

//In the loop
$array[] = $user["email"];
$array[] = $user["tel"];

echo json_encode($array);
?>

10-05 21:05
查看更多