Я почти сделал создание корзины покупок, но я не уверен, как удалить элементы из корзины покупок. Я использую массивы, которые хранятся внутри сеанса. Поэтому я хотел бы удалить выбранные элементы в массиве (используя флажок, который я добавил).unset значение массива и ключ в сеансе
products.php
cat<a href ="Adding-to-cart.php?id=2222"> add to cart<a/><br>
dog<a href ="Adding-to-cart?id=1111"> add to cart<a/><br>
bird<a href ="Adding-to-cart?id=5555"> add to cart<a/><br>
Добавление в корзину
code
<?php
session_start();
if(empty($_SESSION['animals']))
{
$_SESSION['animals'] = array();
}
$_SESSION['animals']["".$_GET['id'].""] = 1;
?>
cart.php
<?php
//////////////////////////////////////////////
$con = mysql_connect("localhost","root","");
mysql_select_db("items",$con);
//////////////////////////////////////////////
session_start();
// create an array
$my_array=array();
// put the array in a session variable
if(!isset($_SESSION['animals']))
$_SESSION['animals']=$my_array;
// move submit code outside of foreach loop
if (isset($_POST["submit"]))
{
for ($i = 0; $i < count($_POST['aaa']); $i++) {
$aaa = $_POST['aaa'][$i];
$key_var = $_POST['ke'][$i];
// setting the session spesific session array value different for each key
$_SESSION['animals'][$key_var] = $aaa;
}
////removing checked item from shopping cart
if (isset($_POST['brosrs'])) {
/////////////Things that I have tried/////////////
////unset($_SESSION['animals'][$key_var]);///////
//unset($_SESSION['animals'][$to_unset]);
}
////removing checked item from shopping cart/////
////////////////////////////////////////////////
}
?>
<table >
<tr >
<td ><b>ID</b></td>
<td ><b>Name</b></td>
<td ><b>Price</b></td>
<td ><b>Subtotal</b></td>
<td ><b>Product ID is</b></td>
<td ><b>Quantity</b></td>
</tr>
<form method="post" action="">
<?php
//// declate the total price and start it as 0 coz its before the actual items added to cart
$total_price=0;
$subtotal = 0;
// loop through the session array with foreach
foreach($_SESSION['animals'] as $key=>$value)
{
////////////////////////////DUMPING EVERYTHING FROM DATABASE////////////////////////////////////////////////
$key_array = array_keys($_SESSION['animals']);
// Get record where $key exists.
$sql = "SELECT id, name, price FROM products WHERE id IN ({$key}) ORDER BY name";
$myData = mysql_query($sql,$con);
// Loop through each record and see if $key_array is present in $row['id'] db
while($row = mysql_fetch_array($myData)){
if(in_array($row['id'], $key_array)){
// display records
echo "<tr>";
echo "<td >". $row['id']. "</td>";
echo "<td class='name'>".$row['name']. "</td>";
echo "<td class='qtyid'>". $row['price']. "</td>";
echo "<br/>";
$quantity_calc = $value;
$subtotal = $value * $row['price'];
$price = $row['price'];
echo "<td>" . $subtotal . "</td>";
}
$total_price += $subtotal;
}
////////////////////////////DUMPING EVERYTHING FROM DATABASE////////////////////////////////////////////////
// and print out the values quantity
echo " <td> Product ID is " .$key. " Quantity is </td>";
// getting the updated value from input box
?>
<!-- <td ><input type="text" name="aaa[]" value="<?php echo $value ; ?>" size="2" /></td> -->
<td> <input id="numberinputsize" type="number" size="1" name="aaa[]" min="1" max="10" value="<?php echo $value ; ?>" > </td>
<!-- take a hidden input with value of key -->
<td ><input type="hidden" name="ke[]" value="<?php echo $key; ?>"><br></td>
<!------------------------adding a remove item checkbox ------------------------------>
<!------------------------adding a remove item checkbox ------------------------------>
<td> <input type ="checkbox" name="brosrs" value = "<?php echo $key; ?>"><?php echo $key; ?></input> </td>
<!------------------------adding a remove item checkbox ------------------------------>
<!------------------------adding a remove item checkbox ------------------------------>
<?php
echo "</tr>";
}
?>
<tr>
<td>Total amount $<?php Echo $total_price; ?></td>
<td><a href="products-legit.php">back to shopping</a></td>
<td> <input class="inputbox" type="submit" value="Update value of key" name="submit"/></td>
</tr>
</table>
</form>
<style>
table {
width:1000px;
}
</style>
СПАСИБО!
ОБНОВЛЕНИЕ! Извините, но для того, чтобы это было понятно, у меня есть страница с продуктами, в которой я добавляю id в массив как ключ, который хранится в сеансе. После нажатия кнопки «Добавить в корзину» пользователь перенаправляется на страницу «Добавить в корзину», где массив вставлен в сеанс. Затем, когда вы отправляетесь на тележку, вы можете видеть предметы. Проблема в том, что >>>, когда у меня есть 2 предмета или больше в корзине, и удалите первый элемент, последний элемент в корзине удаляет вместо него.
Итак, где проблема? Просто * unset * элемент массива с элементом, который вам больше не нужен. – Rizier123
Просто используйте 'unset'. Если вы хотите уничтожить все сеансы, проверьте эти два метода: http://php.net/manual/en/function.session-unset.php и http://php.net/manual/en/function.session-destroy. php – sinaza
hi jackie утром ваш вопрос был удален в то время, когда я сделал демонстрационную страницу, чтобы показать вам, как решить вашу проблему, вот ваш подход к решению, который вы можете использовать по своему усмотрению по своему усмотрению .. см. мой ответ и выберите его как ответ если поможет .. HappyCoding .. !! – PRANAV