【问题标题】:How to make a text box change depending on a dropdown menu如何根据下拉菜单更改文本框
【发布时间】:2014-05-28 22:07:19
【问题描述】:

我想知道如何根据下拉菜单更改文本框。比如……

<form action="index.php" method="POST">
<p>Product:</p>
<select id = "myPRODUCTS">
<option value = "Apple">Apple</option>
<option value = "Orange">Orange</option>
<option value = "Mango">Mango</option>
</select>
<p>Price:</p><input type="text" name="Price" readonly="readonly" />

因此,如果我选择了 Apple,我希望价格文本框更改为 0.45 英镑,或者如果我选择橙色,我希望它为 0.50 英镑,依此类推。我该怎么做?

提前致谢, 马立克

【问题讨论】:

  • 我觉得你需要js。例如,您可以为每个选项放置一个“数据价格”属性,其中存储每个价格,然后在更改事件中使用 js 获取该属性并将其传递给您想要的元素。
  • 听起来有点混乱
  • @Marek - 实际上,这是一种非常标准的方法。直到你学会它才会感到困惑。

标签: php html input textbox html.dropdownlistfor


【解决方案1】:

此代码显示了您如何实现您的目标。
正如其他人所提到的,这并不是最安全/最有效的方法,特别是如果你正在处理真钱,但你所要做的就是使用&lt;script src="http://code.jquery.com/jquery-latest.min.js"&gt;&lt;/script&gt;将jquery添加到你的html文件中@

$('#myPRODUVTS').on('change', function() {
 fruit = $(this).val();
    if (fruit == 'Apple') {
        $('#Price').val('£0.45');
    }
    if (fruit == 'Orange') {
        $('#Price').val('£0.50');
    }
    if (fruit == 'Mango') {
        $('#Price').val('£0.65');
    }
});

http://jsfiddle.net/LtBh6/ 这显示了与您的示例一起运行的代码。

【讨论】:

  • 把我为你写的代码放在&lt;script&gt;&lt;/script&gt;标签中,在底部的&lt;/body&gt;标签之后。您可以将 jquery.js 文件的引用放在同一位置或 &lt;head&gt; 标记中。
  • 我使用的是 chrome,没有这个问题。
  • 它应该可以工作。我认为这不会有什么不同,但我建议将 jquery 的引用放在&lt;head&gt; 标记中,在&lt;body&gt; 标记上方。您的&lt;title&gt; 标签也包含在&lt;head&gt; 中。
  • 还是不行,不过没关系。无论如何感谢您的帮助
【解决方案2】:

您确实创建了一个在选择更改时运行的 JS 函数。 该函数将重新加载页面并将价格值归因于一个变量,您将使用该变量为价格字段赋值。

当然,您应该在数据库中包含所有这些名称和价格,以便更容易选择值。

:)

一些更新:

有数据的数据库 查询那个数据库表调用

$result_consulta_mes(在我的例子中)

在 samefile.php 中一些 Js 将获取 select 的值并使用变量重新加载相同的文件。

<script>function unid()
{
    var mse=document.getElementById("select_mes");
    var mse2=mse.options[mse.selectedIndex].value;
    document.getElementById("mes_index").value = mse2;
    window.location.href = "samefile.php?rowmes=" + mse2;
}</script>

然后获取来自JS的变量值

<?php $varmes = "$_GET[rowmes]"; ?>

然后选择一会儿:

<input class="hidden" name="mes_index" type="text" id="mes_index" value= "<?php echo $varmes?>"><select data-size="20" id="select_mes" onchange="unid()" >
<?php
    $current_mes = $varmes;
    while($row_me = mysql_fetch_array($result_consulta_mes)){ 
    if ($row_me['mes_id'] == $current_mes){
    echo "<option selected value=" . $row_me['mes_id'] . ">" . $row_me['mes_mes'] . "</option>" ;}
    else {
    echo "<option value=" . $row_me['mes_id'] . ">" . $row_me['mes_mes'] . "</option>" ;}
    }
?></select>

【讨论】:

  • 我认为这应该是一个评论。
  • 我同意你的观点,但我不能放置 cmets,但我仍然会尽力提供帮助。
  • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
  • @EricBrown 让我不同意你的观点,如果创建了数据库表,这个脚本工作得很好,提供对数据库表的访问,更多的数据值和更好的管理。还更新了在 from 中使用它的实例的一些输入字段。这段代码是我的一些代码的一部分,它工作得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多