【问题标题】:How to show the values from a PHP array in a textfield, based on a dropdown menu如何根据下拉菜单在文本字段中显示 PHP 数组中的值
【发布时间】:2011-08-10 22:35:02
【问题描述】:

任何帮助都会很棒。到目前为止,这是我所拥有的:

PHP:

<?php

$arr1 = array("1080", "939", "769", "696","572", "498", "408", "369");

$arr2 = array("1275", "1095", "890", "799", "676", "580", "472", "423");

?>

下拉菜单:

<select name="age" id="age">
<option value="<?php echo $arr1[0]; ?>">18-24</option>
<option value="<?php echo $arr2[0]; ?>">25-29</option>
</select>

文本字段:

<input name="planA" type="text" id="planA" value="<?php echo $arr1[0]; ?>" size="10" />

根据我从下拉菜单中选择的内容,我需要文本字段显示数组中的正确值。

谢谢。

【问题讨论】:

    标签: php arrays textfield


    【解决方案1】:

    当用户从下拉列表中选择一个值时,他们只会看到option 标记之间的内容;所以对于第二个值,25-29 将被显示。根据您的代码,这对应的值为1275。如果这是您需要在文本框中填充的值,您可以使用 Javascript:

    <select name="age" id="age" onChange=PopulateField(this.value);>
    ...
    

    并且在文档的头部:

    <script type="text/javascript" language="javascript">
    function PopulateField(numValue)
    {
        document.getElementById('planA').value = numValue;
    }
    </script>
    

    当然要意识到,如果在用户的浏览器上禁用了 Javascript,这将不起作用。提交表单后,您当然仍然可以通过使用age 变量来获取值;它的值已经设置为数组中的元素。 (我假设文本框仅用于用户反馈。)

    现在,如果表单已经提交,并且您想在文本字段中显示提交结果,那么您需要做的就是更改您的 PHP 代码以反映所选值:

    <input name="planA" type="text" id="planA" value="<?php echo $_POST['age']; ?>" size="10" />
    

    如果您的表单使用 GET 而不是 POST,请将 $_POST 相应地更改为 $_GET


    编辑(每 cmets):

    如果您要填充多个文本框,这取决于您是否只有一个下拉菜单来触发它们,或者是否有多个下拉菜单。我假设您有另一个下拉菜单来填充另一个文本框。在这种情况下,您可以像这样使用第二个 javascript 函数:

    <script type="text/javascript" language="javascript">
    function PopulateFieldA(numValue)
    {
        document.getElementById('planA').value = numValue;
    }
    function PopulateFieldB(numValue)
    {
        document.getElementById('planB').value = numValue;
    }
    </script>
    

    在与计划 B 的文本字段关联的下拉菜单中,使用适当的 onChange 事件:

    <select name="ageB" id="ageB" onChange=PopulateFieldB(this.value);>
    

    您可以将多个参数传递给一个函数,以便填充多个框:

    function PopulateFields(numValueA, numValueB)
    {
        document.getElementById('planA').value = numValueA;
        document.getElementById('planB').value = numValueB;
    }
    

    其他任何事情都只是我的猜测,因为我并不真正了解您的应用程序的细节。希望这有助于您走上正确的道路。

    【讨论】:

    • 文本字段是我想从数组中显示正确值的地方。我想使用 onChange 这样我就不必使用提交表单。你的行:document.getElementById('planA').value = numValue;考虑到多个文本字段?
    • 我不知道有多个文本字段。但是,您当然可以编写 javascript 函数来填充任意数量的内容。
    • 只有1个下拉菜单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2022-12-05
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多