Mysql
 sql >> Database >  >> RDS >> Mysql

Passa attraverso gli array di input dei moduli in php

La soluzione corretta dipenderà dal fatto che prevedi di archiviare valori scalari in $_POST['invoice']['new_item_attributes'] o se prevedi di renderlo un array di array (in altre parole, prevedi di avere multipli di new_item_attributes .

Se prevedi solo di memorizzare valori scalari, dovrai prima modificare ciascuno degli elementi del modulo in modo che assomigli a questo:

name="inovoice[new_item_attributes][description]"

Noterai che il vuoto [] è sparito.

E poi il tuo loop dovrebbe essere così:

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

Altrimenti dovrai usarlo nel tuo codice PHP:

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

Oppure:

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