2010-12-03 15 views
0

質問があります。フォームフィールドの配列を定義する方法PHP

私は最初のページにこのコードを持っている:

<input type="text" name="number" id="number"> 
<input type="submit" name="button_add" id="button_add" value="add"> 
<? 
$i=0; 
while($number>$i) { $i++; ?> 
    <div align="left"> 
    <input type="text" name="text[<? echo $i; ?>]" id="text[<? echo $i; ?>]" /><? } 
?> 

にはどうすれば$_POST VARSを使用して、次のページでfiledsの配列を定義していますか?

+1

うわー...私はそれを理解するには飲み物が必要だと思う。あなたはあなたの質問を言い換えることができますか?あなたはポストアクションを介して値の配列を渡そうとしていますか、またはここで何をしようとしていますか? –

+0

Victor

+0

申し訳ありません私は聞いているsistemにorientatiedされていません。だから私の暴動はとても悪いです。 – Victor

答えて

4

それはあなたが求めているものだ場合$_POSTのエントリは、配列そのものです:

for ($i = 0; $i < count($_POST['text']); ++$i) { 
    // do something with this post: 
    $_POST['text'][$i]; 
} 

か:

foreach ($_POST['text'] as $i => $text) { 
    // do something with: 
    $text; 
    // Note: $text === $_POST['text'][$i] 
} 

オフトピックを

常にあなたの要素を閉じます。

<input type="text" name="number" id="number" /> 
<input type="submit" name="button_add" id="button_add" value="add" /> 

入力をラップする<div>も閉じずに済みました。そうしないと、あなたの書類が不正であり、ブラウザが書類の解析を試みるにもかかわらず、あなたが望むようにする保証はありません。

入力のデフォルトタイプはテキストです。 type属性を "text"に設定することに害はありませんが、必ずしも必要ではありません。

short tagsに頼らないでください。フル<?phpを使用してください。すべてのホストが有効になっているわけではなく、廃止予定であり、すぐに去っていく予定です(PHP 5より前にやっている話があります)。

入力名に配列インデックスを明示的に割り当てる必要はありません。 empty bracketsは値を配列の末尾に割り当てます。また、 '['と ']'はvalid characters for IDsではありません。あなたのコード内のwhileループより

<input type="text" name="text[]" id="text_<?php echo $i; ?>" /> 

for loop is more appropriate。両方とも同じことをしますが、それらは異なる意味を持ちます(変化する状況下で静的条件が成り立つ間にループが繰り返され、forループがシーケンスにわたって繰り返されます)。

for ($i=0; $i < $number; ++$i) { 

はすべて一緒に、我々は持っている:

<input name="number" id="number" /> 
<input type="submit" name="button_add" id="button_add" value="add" /> 
<?php for ($i=0; $i < $number; ++$i): ?> 
    <div align="left"> 
    <input name="text[]" id="text_<?php echo $i; ?>" /> 
    </div> 
<?php endfor; ?> 
+0

ごめんなさい申し訳ありませんが、この行は上記のコードまたは次のページに入力する必要があります。 – Victor

+0

@Victor:投稿コードが投稿されたときに処理されるページでこのコードを使用します。だからあなたのフォームが 'filename.php'に提出しているなら、それはあなたが@outisのコードを使用するファイルです。 –

3

試してみてください。フォームはに提出ページで

foreach($_POST['text'] as $key => $value){ 
echo "Value for texbox # ".$key." is:". $value; 
    // or whatever code you want 
} 

を。

-2

私はネットブックに載っています。それをテストするだけでなく、コードを書くのはapainになります。

ループとpost varおよびisset関数を使用します。

+2

キーボード/機械の障害があるかどうかにかかわらず、ほとんど答えはありません。 –

+1

あなたは私の数字のサイズが表示されます!少なくともいくつかの大まかな使用の後、キーボードはabitを緩めた。しかし、まだ、本当にタイトです。次回は私が叩いているときに、あなたのために擬似コードを追加します。 – Yehonatan

関連する問題