0

私はこのコードを持っています

HTML

<ul style="list-style:none;" id="listing">
<li>
<table id="pedido" action="post.php">
<form method="POST" >
<tr>
<td>
<select name="product[]">
    <option value="0">Perfil:</option>
    <option value="68mm 5 Cámaras AD rendszer egyenes szárny, ütköző tömítéssel">68mm 5 Cámaras 7001AD, con dos juntas</option>
    <option value="68mm 7 K AD rendszer íves szárny, ütköző tömítéssel">68mm 7 Cámaras 7001AD con dos juntas</option>
    <option value="80 mm 6 K Tok + 7 K íves szárny  AD rendszer, ütköző tömítéssel">80 mm Marco 6 Cámaras  + Hoja de 7 Cámaras 7001AD con dos juntas</option>
    <option value="68mm 7 K  MD rendszer ütköző és középtömítéses, íves szárny">68mm 7 Cámaras 7001MD con tres juntas</option>
    <option value="80 mm 8 K MD rendszer ütköző és középtömítéses, íves szárny">80 mm 8 Cámaras 7001MD con tres juntas</option>
</select>
</td>
</tr>
<tr>
<td>
<input name="h[]" value="Horizontal" class="comment" /> x
<input name="v[]" value="Vertical" class="comment" />
uds:
<input name="uds[]" style="width:60px;"/>
</td>
</tr>
<tr>
<td>
<select>
<option>Color</option>
</select>

Persiana <input type="checkbox" name="persiana[]" id="persiana"/> <div id="persianaver" style="float:right; display:none">Con motor<input type="radio" name="f[]" value="auto" /> Manual<input type="radio" name="f[]" value="manual" /></div>
</td>
<tr></tr>
<tr>
<td style="width:435px;">
<div id="persiaops" style="float:right; display:none">IMPORTANTE: En caso de haber seleccionado la opción persiana usted tiene que especificar el tamaño de la tapa del cajón (Lugar donde se sitúa la caja de persiana) Puede especificarlo en el campo comentario <a id="pregunta" href="images/demo.jpg"><img alt="pregunta" src="images/ask.jpg"  height="15" width="15"/></a> </div>
</td>
</tr>
<tr>
<td>
<textarea name="comment[]" rows="5" cols="59" class="comment">Comentario</textarea>
</td>
</tr>
</form>
</table>
</li>
</ul>

テーブルを何度も複製してから情報を入力したいので、すべての要素は name[] と呼ばれます。しかし、私の質問は次のとおりです。phpでこれらの値を取得するにはどうすればよいですか? つまり、$_POST['hello'] が送信された場合、hello フィールドのコンテンツを取得できますが、$_POST['hello[]'] はどうでしょうか?? 配列オブジェクトとして保存されます..しかし、name="hello" のすべてのフィールドが正しく入力されているかどうかを確認するにはどうすればよいですか? または、値を配列として保存し、後で post.php で、配列に含まれるすべての要素が正しいかどうかを確認する必要がありますか? 簡単な方法はありますか?

ありがとう ;)

4

3 に答える 3

2

product []のような名前のフィールドには、PHPで$ _POST ["product"] [0](最初のフィールドの場合)を使用してアクセスできます。

この配列をループすることもできます。

foreach($_POST["product"] as $key => $product) {
    echo $product;
}

すべてのフィールドが入力されているかどうかを確認するには、実行時変数を追加する必要があります。この変数は、入力フィールドのクローンを作成するたびにカウントアップされます。

<select name="product[0]">...
...
<select name="product[1]">...
...

次に、製品をもう一度ループできます。

foreach($_POST["product"] as $key => $product) {
    //check whether h is also filled:
    if($_POST["h"][$key] != "") {
        ...
    }
}
于 2012-04-04T16:08:36.387 に答える
1

PHPがリクエストデータを解析するときに、これらは配列として解釈されます。それで:

<input name="v[]" value="Vertical" class="comment" />
<input name="v[]" value="Horizontal" class="comment" />

PHPで利用可能になり、$_POST['v']次のようになります。

Array
(
    [0] => Vertical
    [1] => Horizontal
)

これは、PHPの暗黙的な配列プッシュと同じ基本構文です。

$v[] = 'Vertical';
$v[] = 'Horizontal';
于 2012-04-04T16:07:40.773 に答える
0

それらを配列として取得できます。

echo $_POST['product'][0];

$_POST配列構造を表示するには、次のように記述します。

print_r($_POST);
于 2012-04-04T16:06:01.757 に答える