I have this code to prosses the ADD TO CART button:
if (isset($_POST['pid'])) {
$pid = $_POST['pid'];
$wasFound = false;
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "quantity" => 1));
} else {
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"] as $each_item) {
$i++;
while (list($key, $value) = each($each_item)) {
if ($key == "item_id" && $value == $pid) {
// That item is in cart already so let's adjust its quantity using array_splice()
array_splice($_SESSION["cart_array"], $i-1, 1, array(array("item_id" => $pid, "quantity" => $each_item['quantity'] + 1)));
$wasFound = true;
} // close if condition
} // close while loop
} // close foreach loop
if ($wasFound == false) {
array_push($_SESSION["cart_array"], array("item_id" => $pid, "quantity" => 1));
}
}
exit();
}
And my add button:
<form id="bd_itm1" name="bd_itm1" method="post" action="help_scripts/cart_functions.php">
<input type="hidden" name="pid" id="pid" value="'. $id . '" />
<input type="submit" name="button" id="button" value="Add to Cart" />
</form>
When I click it it takes me to the cart.php as I tell it to do with my header(location).
But I do not want it to. I want to stay at the same page as my ad button.
Now, if I remove my header(location) it takes me to a blank page. (but still it adds the item to cart)
No errors in my logs. FOR SURE. 🙂
Many are saying things about ajax and jquery… but I am not that familiar with these!
Thank you
My dynamicList code: (I don’t know what’s happening but just now it showed me your question)
$sql = mysql_query("SELECT * FROM products WHERE category='body' ORDER BY id ASC");
$productCount = mysql_num_rows($sql);
// count the output amount
if ($productCount > 0) {
$i=0;
$dynamicListBody = '<table width: 90%; margin-right: auto; margin-left: auto; color: #00E6AA;>';
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$product_name = $row["product_name"];
$details = $row["details"];
$price = $row["price"];
$date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
$dynamicListBody .= ($i==0) ? '<tr>':'';
$dynamicListBody .= '<td width="10%">
<img style="border:#666 1px solid;" src="../stock_photos/' . $id . '.png" height="80px" width="40px" alt="' . $product_name . '" />
</td>
<td width="35%">
<span class=itmttl>' . $product_name . '</span>
<br />
<span class=text>' . $details . '
<br />
€' . $price . '</span>
<br />
<form name="bd_itm" id="bd_itm" method="post" action="help_scripts/cart_functions.php">
<input type="hidden" name="pid" id="pid" value="' . $id . '" />
<input type="submit" name="button' . $id . '" id="button' . $id . '" value="Add to Cart" />
<br />
<br />
</form>
</td>';
$dynamicListBody .= ($i==1) ? '</tr>':'';
$i++;
($i==2) ? $i=0:'';
}
$dynamicListBody.='</table>';
} else {
$dynamicListBody = "We have no products listed in our store yet";
}
mysql_close();
?>
If you don’t mind the page refreshing after the POST from your button you could add a redirect in your php code to bring you back to the page the button is on.
You’ll have to use AJAX if you want the page not to refresh.
with jquery:
put the above javascript in a .js file that is loaded with your button page.
You may want to make this change in your php that runs when the button is pressed:
Change the above to
this is the code that runs if the cart array is not set or is empty