2

すべて、テキスト入力、チェックボックス、選択ボックス、およびテキストエリアを含むフォームがあります。送信ボタンを使用して PHP でフォームを送信し、処理のためにページに送信したいと考えています。

その部分は問題ありませんが、基本的に結果を配列に取得して、foreach ループを実行して結果を処理できるようにしたいと考えています。

基本的に、バックエンド処理スクリプトに送信する動的フォームを作成しようとしていますが、次のように投稿値にハードコーディングしたくありません。

$var1 = $_POST['var1'];
echo $var1;
$var2 = $_POST['var2'];
echo $var2;

このようなことを行う方法を知っている人や、何か推奨事項を教えてくれる人はいますか?

4

4 に答える 4

2

POST にこれらの生成された要素以外のデータがない場合は、次のようにします。

foreach( $_POST as $key => $val ) {
    // do your job 
}

持っているものを処理します。生成されたエントリと定義済みのエントリを混在させたい場合は、これらの生成されたエントリをネストされた配列に配置することができます。

<input ... name="generated[fieldname]" />

そして、あなたは繰り返します

foreach( $_POST['generated'] as $key => $val ) {
  // do your job
}
于 2012-11-26T21:53:03.843 に答える
1

配列表記を使用するだけです:

<input name="vars[]" value="" />

次に、次のようなものになります$_POST

Array ('vars' => Array(
     0 => 'val1'
     1 => 'val2'
   )
)
于 2012-11-26T21:53:31.813 に答える
0
foreach ($_POST as $param_name => $param_val) {
    echo "Param: $param_name; Value: $param_val";
}
于 2012-11-26T21:52:16.113 に答える
-1

実際、$_POST 変数は配列です。単純な foreach ループを使用して配列値を抽出するだけです。それでおしまい。

この例がお役に立てば幸いです。

foreach($_POST as $field_name => $val)
{   
  $asig = "\$".$field_name."='".addslashes($val)."';"; 
  eval($asig); 
}

このスクリプトを実行すると、すべての POST 値がフィールド名と同じ名前の変数に入れられます。

于 2012-11-26T22:07:14.553 に答える