views:

27

answers:

1

I have a series of checkbox inputs and corresponding text area inputs to allow specification of quantity.

Here's what the two fields look like when the item is static (i.e. only 1):

<input type="checkbox" name="measure[checked][]" value="<?=$item->id?>">
<input type="hidden" name="measure[quantity][]" value="1" />

Here's what the input fields look like for all items that have a specifiable quantity:

<input type="checkbox" name="measure[checked][]" value="<?=$item->id?>"> 
<input class="item_mult" value="0" type="text" name="measure[quantity][]" />

This would play nicely, if within the array, it didn't output like this, after collecting it with:

$field = $this->input->post('measure',true);

Array ( 

     [quantity] => Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 1 [5] => 1 [6] => 25 [7] => 0 [8] => 0 [9] => 0 [10] => 1 [11] => 1 [12] => 1 [13] => 1 [14] => 1 [15] => 1 [16] => 1 [17] => 1 [18] => 1 [19] => 1 [20] => 1 [21] => 1 [22] => 0 [23] => 0 [24] => 0 [25] => 0 [26] => 0 [27] => 0 [28] => 0 [29] => 0 [30] => 0 [31] => 0 [32] => 0 [33] => 0 [34] => 0 [35] => 0 [36] => 0 [37] => 0 [38] => 0 [39] => 0 [40] => 0 [41] => 1 [42] => 1 [43] => 1 [44] => 1 [45] => 1 [46] => 1 [47] => 1 [48] => 1 [49] => 1 [50] => 1 [51] => 1 [52] => 0 [53] => 0 [54] => 0 ) 

     [checked] => Array ( [0] => 4 [1] => 6 [2] => 13 ) 

) 

I understand what the values in the checked array are, I just do not understand how to relate the first field to the second, later in the program.

How do I incorporate the correct code to relate checked items to quantities?

+1  A: 

Use something common (the item id) to relate them:

<input type="checkbox" name="measure[checked][<?=$item->id?>]" value="1"> 
<input class="item_mult" value="0" type="text" name="measure[quantity][<?=$item->id?>]" />

Now you'll know what measures relate to what items. However, a better way would be:

<input type="checkbox" name="measure[<?=$item->id?>][checked]" value="1"> 
<input class="item_mult" value="0" type="text" name="measure[<?=$item->id?>][quantity]" />

Here you have an array (measure) of items, with two 'properties': 'checked' and 'quantity'. Easy to iterate over and understand.

Tim Lytle
Thank you! Is there some documentation that you could recommend that you learned this from? Or did you learn it from school, or just Googling around? If so, what would you Google for to find more information about something like this? Thanks!
dmanexe
I'd recommend stackoverflow. :-)
Tim Lytle