[WordPress] 配列として PHP $_POST 変数の配列を格納します。

スポンサーリンク

質問

ワードプレス プロセスに取り組んでがこれワードプレス、この場合、WooCommerce に関するに関連した PHP と配列操作の一般的な質問のように思える

に提出することどこでも 1 から同じ種類の約 35 エントリ フォームを持って私は私の理解する私は次のように作成することができる場合。最初と最後の名前を使っています。

簡体字、フォーム入力のようになります:

echo '  <input type="text" name="first_name[]" id="first_name" />';
echo '  <input type="text" name="last_name[]" id="last_name" />';

上記の行のフルバージョンでは多くの時間と必要に応じて、互いから順番に id を区別する、反復変数と他の値が事前入力隠されたレプリケートされます。並列バージョン変数として非表示フィールドを投稿するためのものがある

後のアクションは、このようになります:

if (isset($_POST) == true) {
    $att_data = array(
        'last_name'         => $_POST['last_name'],
        'first_name'        => $_POST['first_name']
    );

、ワードプレスの機能 add_post_meta 後 $att_data データベースに追加する、べきであります。それは、形の無い、または $_POST […] の代わりにダミー変数を直接「追加」アクションとして正常に動作します。残念なことに、しかし、私フォーム/送信/$_POST 与えるのバージョンを使用して私のデバッグ コンソールは

["last_name"]=> NULL ["first_name"]=> NULL 

少なくともポスト アクションを投稿するので、フォームの送信または、配列が送信されているが $_POST 変数はキャプチャされません。なぜか?

追加: 秒を待ちなさい – WooCommerce をリダイレクトする前にすべての $_POST 変数をクリアするかどうかと思いまして.今研究しています。

答え

ワードプレスではなく最近では、同様の問題をしました。

htmlentities()

を使用し、

serialize()

機能この

htmlentities(serialize($array))

のように見えたので、それは私にとって働いた

これが役に立てば幸い

答え

かどうかあなたの質問を右私しますですが、やったことを望む本当にわからない

を使用する場合:

extract $_POST;

になるすべてのスタンドアロン変数変数を投稿します

例:

$_POST = array(
    'first_name' => 'john',
    'last_name' => 'doe',
);

extract($_POST);

echo $first_name; // echoes john
echo $last_name; // echoes doe

これが役に立てば幸い

編集:

フォーム名前削除、

[

]

。これらのフォームを送信する必要はありません。チェック ボックスをオンまたは multiselects を送信するためにのみ使用されます

http://stackoverflow.com/questions/28610726/storing-array-of-php-post-variables-as-array

スポンサーリンク

Leave a Reply