Jump to content

[SOLVED] Array Issues processing forms with multiple radio button groups


mo

Recommended Posts

I am receiving error "Fatal error: Cannot use string offset as an array in ....".

 

I have a web form with several groups of radio buttons and checkboxes which are all dynamically created based on MySQl entries. When a user submits the form, I go through a series of checks. For checkboxes I check if a users only selected less than the max amount of boxes.

 

All my logic workes fine when I just have one group of checkboxes but when I have multiple groups of checkboxes, I need the attributes of said group in order to determine if the group is a group of check boxes or radio buttons or if the group has a max box selection setting and if so how many boxes can be selected.

 

To paint a clear picture in regards to the groups of boxes. Lets take a website like pizzahut and let's say we're ordering a pizza and we're presented a window with a box that has meat toppings and a box that has vegetable toppings. The system only lets you choose 2 toppings from the meat list and 3 from the vegetable list.

 

This is similiar to my situation. I build a form dynamically and than during processing of the form I need to check for the selected boxes and and make sure not more than the max amounts were selected.

 

Snippet of code used to build the boxes:

 

<form ...>

...

 

while($ArrayRow = mysql_fetch_array($sqlStr)) {

...

 

 

//Build array of option attributes

$OptAttrArray =

array( array($strOptId,$strPrice,$strIsOption,$strBtype,$strMaxOptions) );

 

 

if($strBtype == 'RADIO'){

//Format radio buttons

echo "<tr><td class=\"dataListItem\">

<input type=\"radio\" name=\"itemoption[]\" value=\"$OptAttrArray\"></td>

<td class=\"dataListItem\">$strDesc</td>

<td class=\"dataListItem\">$strPrice</td></tr>";

}else{

//Format checkboxes

echo "<tr><td class=\"dataListItem\"><input name=\"itemoption[]\" type=\"checkbox\" value=\"$OptAttrArray\"></td>

<tdclass=\"dataListItem\">$strDesc</td>

<tdclass=\"dataListItem\">$strPrice</td></tr>";

}//ENDIF CHECK BUTTON TYPE

}//End While

 

blah, blah, blah.....

 

</form>

 

My issue I think is that I create an array (itemoption[]) for the input field which holds all the buttons on the screen. The value for each button is another array that holds the attributes ($OptAttrArray).

 

During form processing when the user clicks submit, I do the following.

 

foreach($_POST['itemoption'] as $val => $value) {

//Seperate value sub array into attribute fields

$strOptId      = $value[0][0];

$strPrice      = $value[0][1];

$strIsOption  = $value[0][2];

$strBtype      = $value[0][3];

$strMaxOptions = $value[0][4];

 

....

}

 

This is where I receive the error "Fatal error: Cannot use string offset as an array in ....".

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.