Есть кнопки категорий, которые выводятся циклом foreach и соответственно таких кнопок несколько:
<form action="" method="POST">
<button name="addArticle" class="btn_buy" type="button" onclick="addToCart(<?=$key['id']?>)">Купить</button>
</form>
function addToCart(id){
$.ajax({
type:'post',
url:'../cart/cart.php',
data:{add_id:id},
success:function(data){
$("#students").html(data);
}
});
}
<?
$idGoods = $_POST['add_id'];
echo $idGoods;
function addGoodsCart($p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8) {
global $mysqli;
$sql = mysqli_prepare($mysqli, "INSERT INTO `cart` (`cookie`, `title`, `idMainSect`, `brand`, `img1`, `coin`, `price`, `amount`) VALUES(?,?,?,?,?,?,?,?)");
mysqli_stmt_bind_param($sql, "ssssssss", $p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8);
mysqli_stmt_execute($sql);
mysqli_stmt_close($sql);
}
if(isset($_POST['addArticle'])){
addGoodsCart($idGoods, 2, 3, 4, 5, 6, 7, 8);
}
При клике на button не происходит запись в БД, но если удалить из PHP блок кода if(isset($_POST['addArticle'])){} то запись добавляется, и так же добавляется если просто обновить страницу. Подскажите пожалуйста, в чём может быть дело?
Вы имеет функцию, которая делает POST запрос с телом
{add_id:id}
(Javascript объект с ключем add_id и значением id)
function addToCart(id){
$.ajax({
type:'post',
url:'../cart/cart.php',
data:{add_id:id},
success:function(data){
$("#students").html(data);
}
});
}
А затем ваш обработчик в части кода на PHP пытается получить данные из тела запроса. Помимо add_id вы хотите получить данные поля addArticle, которое вы НЕ передаете с клиента.
Поэтому isset($_POST['addArticle'])
будет возвращать false;
А isset($_POST['add_id'])
будет возвращать true и его можно использовать;
На странице есть какие-то статические поля и динамически добавляется таблица с инпутами к примеру такая:
Почему после выполнения строки startTimesetHours(0,0,0); обнуляются значения у currentTime?