QuickForm and multi-dimensional array names
| From: | Jeff Schmidt | Date: | Wed, 07 Apr 2004 16:59:24 +0000 |
| Subject: | QuickForm and multi-dimensional array names | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-11717@lists.php.net to get a copy of this message | ||
Hello,
I've got a quickform setup as a table. I wanted to setup the quickform
elements to have names that are multi-dimensional arrays.
I used a loop to generate all the elements:
for ($row = 0; $row <= PhysInspct; $row++)
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc
{
$this->addElement('text', 'wf_exp_data[' . $row . '][yrsExp]');
for($col = 0; $col <= NONE; $col++)
{
$this->addElement('text', 'wf_exp_data[' . $row .']['
. $col . ']');
}
}
This produces HTML that looks like:
<tr>
<td class='col1'>Welding Managememt</td><td><input
name="wf_exp_data[0][yrsExp]" type="text" value="" /></td>
<td>
<input name="wf_exp_data[0][0]" type="text" /></td>
<td><input name="wf_exp_data[0][1]" type="text" /></td>
<td><input name="wf_exp_data[0][2]" type="text" /></td>
<td><input name="wf_exp_data[0][3]" type="text" /></td>
<td><input name="wf_exp_data[0][4]" type="text" /></td>
<td><input name="wf_exp_data[0][5]" type="text" /></td>
<td><input name="wf_exp_data[0][6]" type="text" /></td>
<td><input name="wf_exp_data[0][7]" type="text" /></td>
</tr>
<tr>
<td class='col1'>Supervisor</td><td><input name="wf_exp_data[1][yrsExp]"
type="text" /></td>
<td><input name="wf_exp_data[1][0]" type="text" value="" /></td>
<td><input name="wf_exp_data[1][1]" type="text" /></td>
<td><input name="wf_exp_data[1][2]" type="text" /></td>
<td><input name="wf_exp_data[1][3]" type="text" /></td>
<td><input name="wf_exp_data[1][4]" type="text" /></td>
<td><input name="wf_exp_data[1][5]" type="text" /></td>
<td><input name="wf_exp_data[1][6]" type="text" /></td>
<td><input name="wf_exp_data[1][7]" type="text" /></td>
</tr>
I wanted to end up, after form submission with something that looked like:
["wf_exp_data"] =>
Array(12) {
[0]=>
array(9) {
["yrsExp"]=>
string(0) ""
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
}
[1]=>
array(9) {
["yrsExp"]=>
string(0) ""
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
}
/* etc */
}
What I actually ended up with is something that looks like:
["wf_exp_data"]=>
array(108) {
[0]=>
array(1) {
["yrsExp"]=>
string(0) ""
}
[1]=>
array(1) {
[0]=>
string(0) ""
}
[2]=>
array(1) {
[1]=>
string(0) ""
}
[3]=>
array(1) {
[2]=>
string(0) ""
}
[4]=>
array(1) {
[3]=>
string(0) ""
}
[5]=>
array(1) {
[4]=>
string(0) ""
}
[6]=>
array(1) {
[5]=>
string(0) ""
}
[7]=>
array(1) {
[6]=>
string(0) ""
}
[8]=>
array(1) {
[7]=>
string(0) ""
}
[9]=>
array(1) {
["yrsExp"]=>
string(0) ""
}
[10]=>
array(1) {
[0]=>
string(0) ""
}
[11]=>
array(1) {
[1]=>
string(0) ""
}
[12]=>
array(1) {
[2]=>
string(0) ""
}
[13]=>
array(1) {
[3]=>
string(0) ""
}
[14]=>
array(1) {
[4]=>
string(0) ""
}
[15]=>
array(1) {
[5]=>
string(0) ""
}
[16]=>
array(1) {
[6]=>
string(0) ""
}
[17]=>
array(1) {
[7]=>
string(0) ""
}
[18]=>
array(1) {
["yrsExp"]=>
string(0) ""
}
[19]=>
array(1) {
[0]=>
string(0) ""
}
[20]=>
array(1) {
[1]=>
string(0) ""
}
[21]=>
array(1) {
[2]=>
string(0) ""
}
[22]=>
array(1) {
[3]=>
string(0) ""
}
[23]=>
array(1) {
[4]=>
string(0) ""
}
[24]=>
array(1) {
[5]=>
string(0) ""
}
[25]=>
array(1) {
[6]=>
string(0) ""
}
[26]=>
array(1) {
[7]=>
string(0) ""
}
/* etc */} Any suggestions on how to get what I actually want?
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc