-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 に答える