通过AJAX自动更新select中的文本

时间:2013-02-08 16:14:15

标签: php javascript html ajax

有谁知道如何让ajax从选择输入更新文本。 我的意思是,如果您选择(表单 - >输入)某些内容,它将更新/显示在<span>或其他内容中。

这就是我所拥有的:

    <?php
echo '<select name="test">';
      for ($i=0; $i <= 20; $i++) {
        echo '<option value="'.$i.'">'.$i.'</option>';
      }
echo "</select>";
     ?>

<script>

    <script>
function upperCase()
{
var A = document.getElementById('test').value;
var B = document.getElementById('txtHint1').value;

C = A * B
document.getElementById('result').value = C; 
} 
    </script>

我要在哪里展示它:

<span id="txtHint1" onchange="upperCase()"></span>

我希望你理解我。

2 个答案:

答案 0 :(得分:0)

我假设这是你的情景:

  • 用户从下拉框中选择一个选项
  • 一旦他们选择了他们的选项,该选项的值乘以'txtHint1'跨度将显示在'结果'范围

首先,你不需要ajax就可以做到这一点,只需要JavaScript,我相信你的意思。接下来,您不希望在'txtHint1'范围内进行更改,因为那里没有任何改变。您希望onchange位于“select”元素上。你的代码非常接近。

function upperCase()
{
    var a = document.getElementById('test').value;
    var b = document.getElementById('txtHint1').value;
    var c = a * b;

    document.getElementById('result').value = c;
}

<select name="text" onchange="upperCase()">YOUR PHP CODE<select>

我没有对此进行测试,但它应该有效。

答案 1 :(得分:0)

我在原始问题中看到了几个错误。第一个是:

echo "<select name="test">;

由于它是双引号字符串,因此您需要在测试周围转义双引号,或用单引号括起字符串。你也错过了一个收盘报价。应该看起来像这样:

echo '<select name="test">';

此外,不是将onchange事件绑定到要显示结果的位置,而是将其绑定到更改时希望JavaScript执行的元素。在这种情况下,那将是您的选择。现在我们要做到这一点:

echo '<select name="test" onchange="upperCase()">';

这一行:C = A * B应该更像:

var C = A * B;

此外,您的代码正在尝试设置ID为result的元素的值。根据您的帖子,您似乎可能希望将其更改为txtHint1