Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Faça um loop através de matrizes de entrada de formulário em php


A solução correta dependerá se você planeja armazenar valores escalares em $_POST['invoice']['new_item_attributes'] ou se você planeja torná-lo um array de arrays (em outras palavras, você planeja ter múltiplos dos new_item_attributes .

Se você planeja armazenar apenas valores escalares, primeiro precisará alterar cada um dos elementos do formulário para ficar assim:
name="inovoice[new_item_attributes][description]"

Você notará que o [] vazio se foi.

E então seu loop deve ficar assim:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
    $data = array('description => $value);
}

Caso contrário, você precisará usar isso em seu código PHP:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
         $data = array('description' => $val['description']);
}

Ou:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
     foreach($val as $sub => $value) {
         $data = array($sub => $value);
     }
}