07-27-2023, 12:22 AM
I know I can do things like `<input name="foo[]">`, but is it possible to do things like `<input name="foo[bar]">` and have it show up in PHP as `$_POST['foo']['bar']`?
*The reason I ask is because I'm making a huge table of form elements (including `<select>` with multiple selections), and I want to have my data organized cleanly for the script that I'm POSTing to. I want the input elements in each column to have the same base name, but a different row identifier as an array key. Does that make sense?*
**EDIT:** I tried exactly this already, but apparently Drupal is interfering with what I'm trying to do. I thought I was just getting my syntax wrong. Firebug tells me that my input names are constructed exactly like this, but my data comes back as `[foo[bar]] => data` rather than `[foo] => array([bar] => data)`.
**EDIT 2:** It seems my real problem was my assumption that `$form_state['values']` in Drupal would have the same array hierarchy as `$_POST`. I should never have assumed that Drupal would be that reasonable and intuitive. I apologize for wasting your time. You may go about your business.
*The reason I ask is because I'm making a huge table of form elements (including `<select>` with multiple selections), and I want to have my data organized cleanly for the script that I'm POSTing to. I want the input elements in each column to have the same base name, but a different row identifier as an array key. Does that make sense?*
**EDIT:** I tried exactly this already, but apparently Drupal is interfering with what I'm trying to do. I thought I was just getting my syntax wrong. Firebug tells me that my input names are constructed exactly like this, but my data comes back as `[foo[bar]] => data` rather than `[foo] => array([bar] => data)`.
**EDIT 2:** It seems my real problem was my assumption that `$form_state['values']` in Drupal would have the same array hierarchy as `$_POST`. I should never have assumed that Drupal would be that reasonable and intuitive. I apologize for wasting your time. You may go about your business.