PDA

View Full Version : Repeat Region Inside a Repeat Selection


Nigel
07-19-2009, 11:57 PM
I have a page where the Admin can add multiple product options in one step:

Bath Chair: [red] [small] sku price ...
Bath Chair: [red] [medium] sku price...

The [color] and [size] options are select lists driven by a repeat region of the color and size tables. When I apply a Repeat Selection behavior to this row of form fields and repeat it 3 times, only the first iteration has populated select lists with all the colors and sizes, the other two are blank. I don't think you can use a repeat region multiple times in a page. If not, how do I go about populating these lists within a repeat selection?

If I create these 3 iterations of the form row manually (using different recordsets for each row), can I still insert all three rows with a click? Insert Multiple records seems to require a Repeat Selection.

Or is there a better way to do this?

Thanks.

Ray Borduin
07-20-2009, 08:35 AM
What is your server language... most likely you just need to add code to return the nested recordset to the first record so that it can be repeated on again.

Nigel
07-20-2009, 09:40 AM
I'm using PHP. Here's the code for the repeat selection:

<form method="POST" name="addoptions" id="addoptions">

<?php
// RepeatSelectionCounter_1 Begin Loop
$RepeatSelectionCounter_1_IterationsRemaining = $RepeatSelectionCounter_1_Iterations;
while($RepeatSelectionCounter_1_IterationsRemainin g--){
if($RepeatSelectionCounterBasedLooping_1 || $row_None){
?>
<div style="border-top: 1px solid #CCC; padding-top: 10px; margin-top: 10px">
<h4><?php echo $row_rsItems['ItemName']; ?></h4>
<p>Option:
<input type="hidden" name="ItemID_<?php echo $RepeatSelectionCounter_1; ?>" id="ItemID_<?php echo $RepeatSelectionCounter_1; ?>" value="<?php echo $row_rsItems['ItemID']; ?>" />
<select name="color_<?php echo $RepeatSelectionCounter_1; ?>">
<?php do { ?>
<option value="<?php echo $row_rsColors['ColorID']; ?>"><?php echo $row_rsColors['ColorName']; ?></option>
<?php } while ($row_rsColors = mysql_fetch_assoc($rsColors)); ?>
</select>
<select name="size_<?php echo $RepeatSelectionCounter_1; ?>">
<?php do { ?>
<option value="<?php echo $row_rsSizes['SizeID']; ?>"><?php echo $row_rsSizes['SizeName']; ?></option>
<?php } while ($row_rsSizes = mysql_fetch_assoc($rsSizes)); ?>
</select>
<input type="text" name="weight_<?php echo $RepeatSelectionCounter_1; ?>" id="weight_<?php echo $RepeatSelectionCounter_1; ?>" value="weight" />
<input type="text" name="ship_<?php echo $RepeatSelectionCounter_1; ?>" id="ship_<?php echo $RepeatSelectionCounter_1; ?>" value="ship" />
<input type="text" name="sku_<?php echo $RepeatSelectionCounter_1; ?>" id="sku_<?php echo $RepeatSelectionCounter_1; ?>" value=" SKU" />
<input type="text" name="msrp_<?php echo $RepeatSelectionCounter_1; ?>" id="msrp_<?php echo $RepeatSelectionCounter_1; ?>" value="MSRP" />
<input type="text" name="price_<?php echo $RepeatSelectionCounter_1; ?>" id="price_<?php echo $RepeatSelectionCounter_1; ?>" value="Price" />
<br />
<input type="text" name="notes_<?php echo $RepeatSelectionCounter_1; ?>" value="Notes..." width="40" />
</p>
</div>
<?php
} // RepeatSelectionCounter_1 Begin Alternate Content
else{
?>
<?php } // RepeatSelectionCounter_1 End Alternate Content
if(!$RepeatSelectionCounterBasedLooping_1 && $RepeatSelectionCounter_1_IterationsRemaining != 0){
if(!$row_None && $RepeatSelectionCounter_1_Iterations == -1){$RepeatSelectionCounter_1_IterationsRemaining = 0;}
$row_None = mysql_fetch_assoc($None);
}
$RepeatSelectionCounter_1++;
} // RepeatSelectionCounter_1 End Loop
?>
<div>
<input type="image" name="Insert" id="Insert" value="Insert" alt="Insert" src="webgfx/btn/btn_add.png" />
<a href="item-list.php" title="Cancel"><img src="webgfx/btn/btn_cancel.png" alt="Cancel" name="Cancel" width="144" height="46" border="0" id="Cancel" /></a>
</div>
</form>

Thanks for your help Ray.

Ray Borduin
07-20-2009, 12:05 PM
Add code below the select list to return it to the first row like:

<select name="size_<?php echo $RepeatSelectionCounter_1; ?>">
<?php do { ?>
<option value="<?php echo $row_rsSizes['SizeID']; ?>"><?php echo $row_rsSizes['SizeName']; ?></option>
<?php } while ($row_rsSizes = mysql_fetch_assoc($rsSizes)); ?>
</select>
<?php
mysql_data_seek($rsSizes, 0);
$row_rsSizes = mysql_fetch_assoc($rsSizes);
?>

Nigel
07-20-2009, 04:25 PM
Great, that did it - thanks!