1

我正在使用 id's-id1$i(when,$i=1) 和 id1$i(when,$i=2) 创建两个文本区域。我想要的是,只要用户更改其中任何一个的文本它应该在警报框中显示该文本的文本区域。这是我的代码:

<?php
$i=1;
while($i)
    {
    echo '<textarea id="id1$i" onchange=Display("id1$i")></textarea>';
    echo "id1$i..<br>";
        if($i==2){break;}
     $i=2;
     }
?>
<input name="Submit" type="submit" value="Submit"/>
<script>
function Display(id1$i)
         {
             alert(document.getElementById("id1$i").value);
             }
</script>

现在当我尝试运行它时......问题是当我在第一个文本区域框中输入“one”时,它显示“one”,没关系......但是当我在第二个文本区域中输入“two”时框,它仍然显示“一个”...:mad::mad::mad:...

我能想到它为什么会发生 lyk dat 的唯一原因是函数 Display(id1$i) 没有采用 $i=2 的值...请帮助!!..

如果我使用像“id11”和“id12”这样的专有名称(即我不在我的代码中的任何地方使用变量$i,或者说我是否对所有内容都进行了编码)..那么代码工作正常..它同时显示“一”“二” “,分别..

4

1 回答 1

4

你不能像那样嵌入 PHP。您需要使用<?php ?>标签,因此您需要更改:

function Display(id1$i)
// ...
alert(document.getElementById("id1$i").value);

至:

function Display(id1<?php echo $i; ?>)
// ...
alert(document.getElementById("id1<?php echo $i; ?>").value);

要直接在字符串中使用变量,您只能使用",因此您可以执行以下操作之一:

'<textarea id="id1'. $i .'" onchange=Display("id1'. $i .'")></textarea>'
// or
"<textarea id=\"id1$i\" onchange=Display(\"id1$i\")></textarea>"
于 2013-04-09T22:31:15.293 回答