Avatar of Robert Francis
Robert Francis
 asked on

Reference key in foreach loop

On line 45 I need to put the code in to unset the item in the table list. How do I reference the key for that item?

		<?php 
		$size = $_GET["size"];
		$color = $_GET["color"];
		$style = $_GET["style"];
		$qty = $_GET["qty"];
		$cat = $_GET["cat"];
		$sub = $_GET["sub"];
		$thumb = $_GET["thumb"];
		
		$cart = array(
		'size' => $size,
		'color' => $color,
		'style' => $style,
		'cat' => $cat,
		'sub' => $sub,
		'thumb' => $thumb,
		'qty' => $qty
		);
		
		$_SESSION['cart'][] = $cart;
		print_r($_SESSION['cart']);
	?> 
<br><br>
<h2 class="required">Quote Cart</h2>
  <table class="table table-bordered table-condensed table-striped table-responsive">
    <tr class="table-header">
          <td><b>Image</b></td>
          <td><b>Style</b></td>
          <td><b>Color</b></td>
          <td><b>Size</b></td>
          <td><b>Quantity</b></td>
          <td><b>Order More</b></td>
          <td><b>Delete</b></td>
    </tr>
    
    <?php
	foreach ($_SESSION['cart'] as $item) {;?>
    <tr>
          <td><img src="/SDL/THUMBNAIL_IMAGE/<?php echo $item['thumb'];?>" alt=""></td>
          <td><?php echo $item['style'];?></td>
          <td><?php echo $item['color'];?></td>
          <td><?php echo $item['size'];?></td>
          <td><?php echo $item['qty'];?></td>
          <td><a href="prod_detail2.php?style=<?php echo $item['style'];?>&sub=<?php echo $item['sub'];?>&cat=<?php echo $item['cat'];?>&btnSubmit=save">Add More</td>
          <td>Delete</td>
    </tr>
    <?php ;} //End of while ?>
	  </table>

Open in new window


Here are the results from the print_r on line 21:

Array ( [0] => Array ( [size] => M [color] => Maroon [style] => ST215 [cat] => Activewear [sub] => Baseball [thumb] => ST215TN.jpg [qty] => 10 ) [1] => Array ( [size] => 2XL [color] => Black [style] => ST215 [cat] => Activewear [sub] => Baseball [thumb] => ST215TN.jpg [qty] => 10 ) [2] => Array ( [size] => S/M [color] => Black [style] => A705 [cat] => Accessories [sub] => Aprons [thumb] => A705TN.jpg [qty] => ) [3] => Array ( [size] => S/M [color] => Black [style] => A705 [cat] => Accessories [sub] => Aprons [thumb] => A705TN.jpg [qty] => ) )

Open in new window

PHP

Avatar of undefined
Last Comment
Julian Hansen

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Ray Paseur

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Peos John

You can also access the array value by adding increment varriable

<?php
	  $i=0;
	foreach ($_SESSION['cart'] as $item) {
 		echo '<pre>'; print_r($_SESSION['cart'][$i]); echo '</pre>';//ACCESS VALUES USING $i
	  ?>
   		
    <tr>
          <td><img src="/SDL/THUMBNAIL_IMAGE/<?php echo $item['thumb'];?>" alt=""></td>
          <td><?php echo $item['style'];?></td>
          <td><?php echo $item['color'];?></td>
          <td><?php echo $item['size'];?></td>
          <td><?php echo $item['qty'];?></td>
          <td><a href="prod_detail2.php?style=<?php echo $item['style'];?>&sub=<?php echo $item['sub'];?>&cat=<?php echo $item['cat'];?>&btnSubmit=save">Add More</td>
          <td>Delete</td>
    </tr>
    <?php $i++; } //End of while ?>
	  </table>

Open in new window

Robert Francis

ASKER
Apparently I am not coding it correctly. It works but always deletes the last key, not the one from the table row.

<table class="table table-bordered table-condensed table-striped table-responsive">
    <tr class="table-header">
          <td><b>Image</b></td>
          <td><b>Style</b></td>
          <td><b>Color</b></td>
          <td><b>Size</b></td>
          <td><b>Quantity</b></td>
          <td><b>Order More</b></td>
          <td><b>Delete</b></td>
    </tr>
    
    <?php
	foreach ($_SESSION['cart'] as $key => $item) {;?>
    <tr>
          <td><img src="/SDL/THUMBNAIL_IMAGE/<?php echo $item['thumb'];?>" alt=""></td>
          <td><?php echo $item['style'];?></td>
          <td><?php echo $item['color'];?></td>
          <td><?php echo $item['size'];?></td>
          <td><?php echo $item['qty'];?></td>
          <td><a href="prod_detail2.php?style=<?php echo $item['style'];?>&sub=<?php echo $item['sub'];?>&cat=<?php echo $item['cat'];?>&btnSubmit=save">Add More</td>
          <td><form action="">
          	<button type="submit" class="btn btn-default" name="btnSubmit2">Delete Line</button>
          </form></td>
    </tr>
    <?php ;} //End of while ?>
	  </table>
	  <div class="row">
	  	<div class="col-sm-6 text-center">	  
	  	<form action="shop-2.php">
	  	<button type="submit" class="btn btn-default" name="btnSubmit" value="save">Continue Quoting</button>
	  </form>
	  </div>
	  	<div class="col-sm-6 text-center">	  
	  	<form action="qoute_cart_close.php">
	  	<button type="submit" class="btn btn-default" name="btnSubmit" value="save">Submit Quote</button>
	  </form>
	  </div>
	  </div>
<hr>
	</div>
	<div id="footer"></div>
</body>

<?php if(isset($_GET['btnSubmit2'])) {
unset($_SESSION['cart'][$key]);
};?>
</html>

Open in new window

SOLUTION
Julian Hansen

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy