-2

我需要将输入文本复制到这样的数组中:

如果输入是“12345”:

<input type="text" name="data1">

然后在文本输入(数组)中也写了“12345”

<? foreach ($countries as $data2)
{
<input type="text" name="$data2['location'][]">
}

<script language="javascript">
function copy() 
{

document.form1.data2.value=document.form1.data1.value
}
</script>
<form action="" method="post" name="form1">
<input type="text" name="data1" onKeyUp="copy()"/>
<br /><br>

<input type="text" name="data2">
</form>

没问题...


但如果是这样:

<input type="text" name="data2[]">
<input type="text" name="data2[]">
<input type="text" name="data2[]">

或者在数组 PHP 中,像这样:

<?php foreach ($countries as $data2): ?>
    <input type="text" name="<?php echo $data2['location'][] ?>" />
<?php endforeach ?>

不工作...


4

1 回答 1

0

看来您需要在正确的位置打开和关闭 PHP 标记。如果您的 HTML 输入控件的名称是$data2['location'][],请尝试以下操作:

<?php foreach ($countries as $data2): ?>
    <input type="text" name="<?php echo $data2['location'][] ?>" />
<?php endforeach ?>

因此,我在两个循环关键字(循环的开始和结束)之前和之后都关闭了 PHP 模式。这意味着这些标签之外的所有内容都处于 HTML 模式,因此要获取控件的名称,我们需要再次打开标签。我选择使用,<?php而不是<?因为后者可以在某些服务器上关闭。但是,如果您不介意代码不可移植,则可以坚持使用缩写形式。

另请注意,我使用了带有更明确end关键字的冒号。这是在视图层中构建循环的一种流行方式;对于普通的控制器代码,我建议你坚持使用普通的大括号。

于 2013-05-02T13:20:00.890 回答