0

有谁知道如何让 ajax 从选择输入中更新文本。我的意思是,如果您选择(表单-> 输入)某些内容,它将更新/出现在 a<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>

我希望你能理解我。

4

2 回答 2

0

我在您的原始问题中看到了几个错误。第一个在这里:

echo "<select name="test">;

由于它是双引号字符串,因此您需要在 test 周围转义双引号,或将字符串括在单引号中。您还缺少结束语。应该是这样的:

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

此外,与其将 onchange 事件绑定到要显示结果的位置,不如将其绑定到更改时希望 JavaScript 执行的元素。在这种情况下,这将是您的选择。现在我们要解决这个问题:

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

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

var C = A * B;

此外,您的代码正在尝试使用 ID 设置元素的值result。根据您的帖子,您似乎想将其更改为txtHint1.

于 2013-02-08T16:26:56.320 回答
0

我假设这是你的场景:

  • 用户从下拉框中选择一个选项
  • 一旦他们选择了他们的选项,该选项的值乘以您的“txtHint1”跨度就会显示在“结果”跨度中

首先,您不需要 ajax 来执行此操作,只需要 JavaScript,我确定您的意思是。接下来,您不希望在您的 'txtHint1' 跨度上发生 onchange,因为那里没有什么可更改的。您希望 onchange 在您的“选择”元素上。您的代码非常接近。

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>

我没有对此进行测试,但它应该可以工作。

于 2013-02-08T16:25:32.443 回答