使用jquery ajax

时间:2019-02-07 14:59:33

标签: javascript php jquery

我目前有一个购物车,该购物车显示在我的菜单中(当您将鼠标悬停在图标上时),可以删除产品。我的购物车还有一个单独的页面,例如付款前的最后一张支票。

当前的问题是,当我从悬停的购物车中删除某些内容时,只有刷新页面后,带有其自己页面的购物车才会更新。

这是我目前从悬停购物车中删除产品的方式:

  // Delete a product when clicking on remove icon from shoppingcart
  $('body').on('click', '.remove_from_cart', function(event) {
    // Stop default behaviour
    event.preventDefault();
    // Get the ID of the product
    var $remove = $(this).attr('id');
    url = 'catalog/cart.php';
    // Post above values to cart.php
    var posting = $.post( url, { remove: $remove} );
    // Put the result inside the shopping cart
    posting.done(function( data ) {
      var content = $( data );
      $( "#shoppingcart" ).empty().append( content );
    });
  });

在我的php脚本中,这就是我要做的:

$deleteprod = $_POST['remove'];
//If the id exists in the session array, delete the product with that id
if(array_key_exists($deleteprod, $_SESSION['producten'])){
    unset($_SESSION['producten'][$deleteprod]);
}

无论单击哪个删除按钮,是否都可以单击一次刷新两个Ajax调用?

因此,如果我点击悬停购物车中的“删除产品”,该产品就会在该处以及购物车页面上被删除,反之亦然。

我尝试过仅向php脚本发送一个空ajax请求,该脚本包含我的购物车页面的循环,如下所示:

// Delete a product when clicking on remove icon from shoppingcart
  $('body').on('click', '.remove_from_cart', function(event) {
    // Stop default behaviour
    event.preventDefault();
    // Get the ID of the product
    var $remove = $(this).attr('id');
    url = 'catalog/cart.php';
    url1 = 'catalog/cartpage.php';
    // Post above values to cart.php
    var posting = $.post( url, { remove: $remove} );
    // Put the result inside the shopping cart
    posting.done(function( data ) {
      var content = $( data );
      $( "#shoppingcart" ).empty().append( content );
    });
    var posting1 = $.post( url1 );
    posting1.done(function( data1 ) {
      var content1 = $( $.parseHTML(data1) );
      $( "#cartpage" ).empty().append( content1 );
    });
  });

由于在我的第一个脚本中从会话中删除了该产品,我认为不需要再次发送ID,所以我只想将循环的会话加载到cartpage.php中。

这是可行的,加载了cartpage.php的内容,但如果没有的话,我有这个

if(!empty($_SESSION['producten'])){
    //my loop code
}else{
    echo 'U heeft nog niets in uw winkelmand geplaatst';
}

检查会话是否为空,即使有10种产品,如果我删除一个,它也会转到else语句,因此它将会话视为空。为什么?还有更好的方法吗?

但是没有应用css。

0 个答案:

没有答案