Sfjklm Ответов: 1

Удалить проблему элемента


Я знаю, что где-то ошибаюсь, и я не вижу it..im слишком устал... должен закончить этот школьный проект к завтрашнему дню ..пожалуйста, помогите

<?php

if(!isset($_SESSION['card'])){
		$_SESSION['card'] = array();
}
if(isset($_POST['mid'])&&isset($_POST['quantity'])){ 
	if(isset($_SESSION['card'][$_POST['mid']])){
		$_SESSION['card'][$_POST['mid']]+=$_POST['quantity'];
	} else {
		$_SESSION['card'][$_POST['mid']]=$_POST['quantity'];
	} 
	if($_SESSION['card'][$_POST['mid']]<=0){
		unset($_SESSION['card'][$_POST['mid']]);
	}
}
if(empty($_SESSION['card'])){
	echo "card is empty";
	return;
}
$sneakers = array_keys($_SESSION['card']);
$sn_string = implode(",",$sneakers);
 
$q = mysqli_query($conn,"select * from items where id in ({$sn_string})");
while($rw=mysqli_fetch_object($q)){ 
?>

<div> 
 <table id="cart" class="table table-hover table-condensed">
    				<thead>
						<tr>
							<th style="width:50%">Product</th>
							<th style="width:10%">Price</th>
							<th style="width:8%">Quantity</th>
							<th style="width:22%" class="text-center">Subtotal</th>
							<th style="width:10%"></th>
						</tr>
					</thead>
					<tbody>
						<tr>
							<td data-th="Product">
								<div class="row">
									<img src="../img_items/<?php echo $rw->img; ?>" class="img-responsive" height="99" width="99"> 
										<h4 class="nomargin"><?php echo $rw->name; ?></h4>
										<p><?php echo $rw->description; ?> </p>
									</div>
								</div>
							</td>
							<td data-th="Price"><?php echo $rw->price; ?></td>
							<td data-th="Quantity">
								<input type="text" class="form-control text-center" value=<?php echo $_SESSION['card'][$rw->id]; ?>>
							</td>

							<?php $total=$_SESSION['card'][$rw->id] * $rw->price; ?>
							<td data-th="Subtotal" class="text-center"><?php echo $total; ?></td>

							<td class="actions" data-th="">

							<!-- DELETE -->
								  <a href="shopping_cart.php?action=delete&id=<?php echo $rw->id; ?>">X</a> 							
							</td>
						</tr>
					</tbody>
				 
						 
						<tr>
							<td><a href="../home.php" class="btn btn-warning"> Continue Shopping</a></td>
							<td colspan="2" class="hidden-xs"></td>
							<td class="hidden-xs text-center"><?php echo $total; ?></td>
							<td><a href="?check=1.php" class="btn btn-success btn-block">Checkout </a></td>
						</tr>
				 
				</table>
 </div>

<?php 
}   
 
} ?>


Что я уже пробовал:

<?php 
if(isset($_GET["action"]))  
 {  
      if($_GET["action"] = "delete")  
      {  
           foreach($_SESSION["cart"] as $keys => $values)  
           {  
                if($values["id"] == $_GET["id"])  
                {  
                     unset($_SESSION["cart"][$keys]);  
                     echo '<script>alert("Item Removed")</script>';  
                     echo '<script>window.location="index.php"</script>';  
                }  
           }  
      }  
 }   ?>

Sfjklm

А также если кто-то знает , как я удаляю кнопку оформления Заказа после каждого товара и ставлю только одну внизу, я буду благодарен за любую помощь

1 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Вот некоторая логика, применяемая к вашей домашней задаче, которая должна исправить вас - но это логика, помогающая вам знать, где искать и что искать.

(1) Посмотрите, где вы создаете свою кнопку оформления заказа. Это должно произойти только после того, как все ваши элементы будут перечислены, и не должно быть частью цикла, который создает список элементов.

(2) Чтобы заставить элемент исчезнуть, у вас есть два основных пути. Сложный путь, помещая информацию в переменные сеанса и перерисовывая страницу. Я бы никогда этого не сделал. Правильный способ - использовать DOM через javascript. Затем вы можете установить событие on-click (), onchange () для своей кнопки (вы используете ссылки - что является частью трудного пути!). Затем функция может изменить видимость кнопки или ее значение. Лучший способ, который является более продвинутым использованием второго метода, - это использовать AJAX, чтобы вы могли перерисовать табличную часть экрана, чтобы отразить изменения, без необходимости обновлять всю страницу. $ _SESSION будет работать, но я редко их использую. Даже этот маршрут в сочетании с использованием модели DOM (.... innerHTML = 'новое содержимое таблицы') можно использовать для перерисовки таблицы без перерисовки страницы. Предмет исчезает из таблицы (его больше нет в нем) - поэтому его не нужно прятать: он исчез.

Упрощенное описание всего этого с примерами событий, обработчиков событий и DOM можно найти здесь: W3Schools Online Web Tutorials[^]

Последний совет: не ждите до последней минуты, чтобы сделать домашнее задание. К настоящему времени может быть уже слишком поздно, даже если вы получите чрезвычайно подробную помощь.