从数据库填充的下拉菜单中更新输入字段


Update an input field from a dropwdown menu populated by a database

我正在开发一个图形计算器。我想让用户保存他们编写的任何有效方程。他们可以通过选择下拉菜单从保存的方程式中进行选择。我遇到的问题是,当我点击下拉菜单中的任何公式时,输入框都不会更新。有没有一种方法可以通过点击任何公式来更新输入框?这就是我所拥有的:

<!-- Input Box: -->
<label for="inputField">Enter values here. <br> <em>F(x)= (x+t)</em>
                    <input   id="inputField" value="sin(t+x)*tan(x-10)" autocomplete="off" size="20" class=" form-control prompt"> 
                 </label>
    <!-- Dropdown Menu -->
<label id="recevoirDonnee" for="DBpick"> Choose from Database 
                 <select  name="DBpick" id="DBpick" class="selectpicker" >
               while ($row = mysql_fetch_row($expressions)) {
                       echo "<option value=$row[1]>$row[1]</option>";
                    }
            </select>
   <script>

$('select').on('change', function() {
$("select option:selected").each(function () {
$('#inputField').val($(this).val()));
});
   </script>

我的问题是,当我在下拉列表中选择任何内容时,它不会更新输入字段。我的代码出了什么问题。谢谢

试试这样的东西:

$('select[name="DBpick"]').on('change', function() {
    $('#inputField').val($(this).val())
});

此处的工作示例

您不需要.each()函数,因为一次只能选择一个值。

用于更新URLS的

您可以使用HTML5的新pushState功能更改整个URL和TITLE。使用此功能时请注意,因为较旧的浏览器不支持此功能。例如,IE在版本10中首次支持它。以下是支持的浏览器列表。要使用此功能,请尝试:

$('select[name="DBpick"]').on('change', function() {
    $('#inputField').val($(this).val());
    if (history.pushState) { // checks if supported
        window.history.pushState(null, "New Page Title", "?"+$(this).val());
    }
});

或者,您可以简单地更改URL末尾的HASH。例如,要更改:

mydomain.com/my-page.html#old
// to
mydomain.com/my-page.html#new

使用此:

$('select[name="DBpick"]').on('change', function() {
    $('#inputField').val($(this).val());
    window.location.hash = $(this).val();
});