Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Durchlaufen Sie Formulareingabe-Arrays in PHP

Die richtige Lösung hängt davon ab, ob Sie planen, skalare Werte unter $_POST['invoice']['new_item_attributes'] zu speichern oder ob Sie vorhaben, daraus ein Array von Arrays zu machen (mit anderen Worten, Sie planen, ein Vielfaches der new_item_attributes zu haben .

Wenn Sie nur skalare Werte speichern möchten, müssen Sie zunächst alle Formularelemente so ändern, dass sie wie folgt aussehen:

name="inovoice[new_item_attributes][description]"

Sie werden feststellen, dass das leere [] verschwunden ist.

Und dann sollte Ihre Schleife so aussehen:

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

Andernfalls müssen Sie dies in Ihrem PHP-Code verwenden:

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

Oder:

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