从按钮获取id属性并通过AJAX发送

时间:2016-10-10 15:12:34

标签: php jquery html ajax

$(document).ready(function() {
	
	$(".eliminar").click(function(e) {

		e.preventDefault();
		var id = $(this).attr('data-id');		
		
		//alert(id);
		$(this).closest('.holder-cesta').remove();
		
		
		$.post('./php/carro_compra/eliminar.php', {
			Id:id
		},function(a) {
			if (a=='0') {
				location.href="./cesta";
			}
		});
		

	});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="holder-cesta">
  <h4>Product 1</h4>
  <button class="eliminar" data-id="1">Delete</button>
 </div>

<div class="holder-cesta">
  <h4>Product 3</h4>
  <button class="eliminar" data-id="3">Delete</button>
 </div>

<div class="holder-cesta">
  <h4>Product 2</h4>
  <button class="eliminar" data-id="2">Delete</button>
 </div>

我正在创建button以删除添加的产品。 购物车中添加的每件商品都会有一个删除按钮。

所以我的问题是,如何通过点击删除id来获取button

我做了这样的事情:

if (isset($_SESSION['carrito'])) {              

    //Array con datos carrito.
    $data = $_SESSION['carrito'];
    $total = 0;                                     

    for ($i=0; $i<count($data); $i++) {

      <div class="holder-cesta">
         <h4><?php echo $data[$i]['Titulo']; ?></h4>    
         <button class="eliminar" data-id="<?php echo $data[$i]['Id']; ?>"><i class="fa fa-trash-o" aria-hidden="true"></i></button>    
      </div>
<?php
     }
} else {
    echo "0 articulos";
} unset($arreglo);
?>

我的jQuery脚本如下所示:

$(document).ready(function() {

    //Button click function.
    $(".eliminar").click(function(e) {
        e.preventDefault();
        //Get the id attribut.
        var id = $(this).attr('data-id');       

        //alert(id); (The alert work perfect).

        //Remove the parent holder.
        $(this).closest('.holder-cesta').remove();

        //Control AJAX
        $.post('http://domain.com/php/carro_compra/eliminar.php', {
        Id:id
        },function(a) {
           if (a=='0') {
               location.href="./cesta";
           }
        }); 

    });
});

但是我的ID中没有eliminar.php,如果我做这样的事情,它总会被忽略:

if ($arreglo[$i]['Id'] != $_POST['Id']) {

}

所以$_POST['Id']AJAX没有得到任何结果。如果我放了id手册,它就可以了。

这里我包含了eliminar.php

<?php
//Session start
session_start();
//Get shoping cart data.
$arreglo = $_SESSION['carrito'];

//Reset.
$arr[] ='';

for ($i=0; $i<count($arreglo); $i++) { 

    if ($arreglo[$i]['Id']!= $_POST['Id']) {

        $datosnuevos = ['Id' => $arreglo[$i]['Id'], 'Titulo' =>$arreglo[$i]['Titulo'], 'Precio' => $arreglo[$i]['Precio'], 'Icon' => $arreglo[$i]['Icon'], 'Cantidad' => $arreglo[$i]['Cantidad'] ];
        $arr[] = $datosnuevos;
    }
}

if (isset($arr)) {

    $_SESSION['carrito'] = $arr;

    $data = $_SESSION['carrito'];
    $value_carrito = count($data);
    $_SESSION['compras'] = $value_carrito;
    echo "<script>window.location.reload();</script>";

} else {
    unset($_SESSION['carrito']);
    unset($_SESSION['compras']);
    echo "0";
}
?>

0 个答案:

没有答案