2017-02-24 4 views
4

このフォーム構造体をPHP配列に変換するにはどうすればいいですか?グループ化されたHTMLデータをPHP配列に変換しますか? (チェックボックスのサブ要素と同様)

0 => 
    'group' => 'group_a', 
    'type' => 'type_yellow', 
    'desc' => 'now to convert' 
1 => 
    'group' => 'group_b', 
    'type' => 'type_orange', 
    'desc' => 'needed to order' 
:私はまた、必要な構造は、チェックボックスがチェックされている場合、このデータは保存することにより、PHPの配列にプッシュすることです...ので、すべてのアイデアは良いですが、

enter image description here

をHTMLを編集することができます私が試したものを例として

description[]ようarrayとしてinput要素名で提供することですが、チェックボックスがチェックされたりしませ...

+4

はたぶん、あなたは次のように入力フィールドに名前を付けることができます: 'エントリ[] [グループ]' 'エントリ[] [タイプ]' 'エントリ[] [DESC]' – Jomoos

+0

何あなたはコードを書いているのですか?読者はここで前の努力を見るのが好きなので、どこにいらっしゃったのかを助けることができます。スタックオーバーフローは、コードがボランティアによってゼロから順番に書き込まれるサイトではありません。 – halfer

答えて

2

うーんている場合、私は制御することはできません。チェックボックスの場合、チェックボックスをオンにした場合にのみ値が送信されます。だから、このため、サーバー側のソリューションは次のようになります。まず

、次のように入力フィールドに名前を付ける:

  • entries[][group]
  • entries[][type]
  • entries[][desc]

か、あるいは

  • entries[0][group]
  • entries[0][type]
  • entries[0][desc]
  • entries[1][group]
  • entries[1][type]
  • entries[1][desc]
  • など....

値は、$_POST[entries]の配列として利用できるようになりますを使用している場合方法。

$entries = $_POST['entries']; 

は今、我々はそれが、対応するチェックボックスがオフになっているのですいるentriesをフィルタリングする必要があります。我々はそのためarray_filterを使用することができます。

$entries = array_filter($entries, function($entry) { 
    return isset($entry['group']); 
}); 
+1

良い解決策。それはOPに彼らが望む正確な構造を与えるはずです。 –

+0

@Jomoos私が望むように私の構造を作ることができるので、問題はあなたの 'name'構造体で解決されます。どうもありがとうございました – Caner

関連する問題