[support] Tableselect in forms issue

Kamal Palei palei.kamal at gmail.com
Fri Sep 14 00:42:16 UTC 2012


Hi All
Thanks a lot for the input.

I am little bit confused with* $index *stuff. When I add tableselect
element, I use the key "*['category_boundary']['category_fieldset']['catg']*"
.  Somewhere deep in form code, for every row's checkbox, what index is
used by form.inc I really do not know. So instead of *$index* what I should
use, I am not sure.

Tried to debug more. When I am trying to add rows (means *none* of the rows
were selected), if I print the array using dpm(), I get below output.

 ... (*Array, 4 elements*)

   - 0 (*Integer*) *0*
   - 1 (*Integer*) *0*
   - 2 (*Integer*) *0*
   - 3 (*Integer*) *0*

When I am tying to delete rows (means one or more rows were selected, in
this particular case I had selected rows 2, 3 and 4), if I print the array *
$form_state['values']['category_boundary']['category_fieldset']['catg'] * using
dpm(), I get below output,
... (*Array, 4 elements*)

   - 1 (*String, 1 characters *) *1*
   - 2 (*String, 1 characters *) *2*
   - 3 (*String, 1 characters *) *3*
   - 0 (*Integer*) *0*

Thats the reason, thought of taking *$index* as key where $index can be one
of 0,1,2,3.

Using the logic mentioned in my first email, I will be able to delete the
rows 2, 3 and 4.
But the problem is if I try to delete the 1st row  it does not get deleted.
I tried to print the array, it looks as below.

 ... (*Array, 4 elements*)

   - 0 (*String, 1 characters *) *0*
   - 1 (*Integer*) *0*
   - 2 (*Integer*) *0*
   - 3 (*Integer*) *0*

Since irrespective of fact, 0th row is selected or not, always value is 0.
Thats the reason, why logic
(*if($form_state['values']['category_boundary']['category_fieldset']['catg'][$index]
> 0) *) does not work.
But from above prints, one thing is clear while I have selected 0th
row, 0th element is
0 (*String, 1 characters *) *0* and when 0th row is not selected, it looks
as 0 (*Integer*) *0*  , (please note the difference here) hence, there
should be someway to determine if 0th row is selected or not. I am not a
PHP expert , so probably missing something here.

Can somebody kindly help here, how do I determine if the 0th row is
selected or not.

Best Regards
Kamal
Net Cloud Systems, Bangalore

On Thu, Sep 13, 2012 at 11:35 PM, Metzler, David <metzlerd at evergreen.edu>wrote:

> **
>
> Wow I can’t believe I didn’t catch that either.  Good eye! ****
>
> ** **
>  ------------------------------
>
> *From:* support-bounces at drupal.org [mailto:support-bounces at drupal.org] *On
> Behalf Of *Anthony
> *Sent:* Thursday, September 13, 2012 10:01 AM
> *To:* **support at drupal.org**
> *Subject:* Re: [support] Tableselect in forms issue****
>
> ** **
>
> Shouldn't it be greater equal zero to get the first element?
>
> ****
>
> On Thu, Sep 13, 2012 at 8:13 AM, Metzler, David <metzlerd at evergreen.edu>
> wrote:****
>
> Seems like it should work provided you really meant $index to be $key.
> That’s not in your real code, right? If it is in your cod that way, that’s
> the bug. ****
>
>  ****
>  ------------------------------
>
> *From:* support-bounces at drupal.org [mailto:support-bounces at drupal.org] *On
> Behalf Of *Kamal Palei
> *Sent:* Thursday, September 13, 2012 5:32 AM
> *To:* support at drupal.org
> *Subject:* [support] Tableselect in forms issue****
>
>  ****
>
> Hi All****
>
> I am trying to use tableselect in forms as per below code.****
>
>  ****
>
> *    $form['category_boundary']['category_fieldset']['catg'] = array
>           (
>           '#type' => 'tableselect',
>           '#header' => $header,
>           '#options' => $options,
>           '#multiple' => TRUE,
>           '#js_select' => FALSE,
>           );*****
>
>  By manipulating options array, I can add the rows in forms table.****
>
>  ****
>
> Sometimes I need to remove the selected rows from form table.****
>
> My question is, how can I determine if a particular row is selected.****
>
>  ****
>
> Currently using below code to determine which row is selected.****
>
>  ****
>
> *
> foreach($form_state['values']['category_boundary']['category_fieldset']['catg']
> as $key => $value)
>     {
>
> if($form_state['values']['category_boundary']['category_fieldset']['catg'][$index]
> > 0)
>         {
>                //row is selected.
>         }
>         else
>        {
>                  //row is not selected.
>         }
>     }*****
>
>  ****
>
> I can determine all the rows if those are selected or not except the 0th
> row.****
>
> Can somebody tell me, what is the RIGHT way to determine if a particular
> row in a table is selected or not.****
>
>  ****
>
> Best Regards****
>
> Kamal****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>
> --
> [ Drupal support list | http://lists.drupal.org/ ]****
>
>
>
>
> -- ****
>
> *Anthony Stefan Maciejowski*****
>
> ** **
>
> ** **
>
> --
> [ Drupal support list | http://lists.drupal.org/ ]
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20120914/09acbd22/attachment-0001.html 


More information about the support mailing list