改变逻辑 - jQuery

时间:2017-09-04 18:20:12

标签: javascript php jquery ajax magento

我有按钮可以添加和删除Magento购物车中的产品,但这个问题在这个问题上并不那么重要。我想做的是改变他们正在做的事情的逻辑。目前,当点击购买按钮时,产品被添加到购物车,按钮被更改"删除它,所有其他按钮都被禁用单击。单击删除按钮后,将删除添加的产品,并再次单击所有其他按钮。

我想将逻辑更改为以下内容:点击购买按钮后,产品会添加到购物车中,购买按钮会被更改为"删除(到目前为止一切都是这样)。但是,所有按钮都保持单击启用状态,如果单击任何其他购买按钮,则会删除添加的产品并添加新产品。

我在很多方面进行过研究和思考,但我找不到办法。

按钮代码:

$smtpServer = "SMTP Server"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtpCredentialsUsername = "blah@blah.com"
$smtpCredentialsPassword = ConvertTo-SecureString -String $smtpPwd -AsPlainText -Force

$Credentials = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList 
$smtpCredentialsUsername, $smtpCredentialsPassword
$smtp.Credentials = $Credentials

$msg = new-object Net.Mail.MailMessage
$msg.Body = $body
$msg.Subject = $subject
$msg.From = $from
$msg.To.ADD($to)
$msg.IsBodyHtml = $true


ForEach ($recipient in Get-Content "\\FILE Location")
  {
    $msg.Bcc.ADD($recipient)
  }

$smtp.Send($msg)

$msg.Dispose();

Ajax申请代码:

<button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="addCartao('<?php echo $_product->getId(); ?>')" name="cartaoMensagem<?php echo $_product->getId(); ?>" id="cartaoMensagem<?php echo $_product->getId(); ?>"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
<button style="display: none;" type="button" id="cartaoMensagemRemover<?php echo $_product->getId(); ?>" title="Remover" class="button btn-cart" onclick="removeCartaotoCart('<?php echo $_product->getId(); ?>')" name="cartaoMensagem<?php echo $_product->getId(); ?>"><span><span>Remover</span></span></button>

1 个答案:

答案 0 :(得分:0)

我“简化”了你的代码......因为我无法用你的PHP做一个例子 所以“复制”行为在this CodePen

现在您需要做的是将添加的产品ID保存在变量中的“内存”中。

添加...如果已有产品ID,请调用删除功能,然后添加其他产品。

应该这么简单。
所以这里有another CodePen进行修改。

var productSelected = "";  // The variable used as a "memory".

function addCartao(product_id){

  if( productSelected != "" ){
    removeCartaotoCart(productSelected);    // Remove the item in cart, if there is one.
  }

  console.log("Add "+product_id);
  productSelected = product_id;             // Keep the product id in "memory".

  $('#cartaoMensagem'+product_id).hide();
  $('#cartaoMensagemRemover'+product_id).show();
  $('#cartaoMensagemRemover'+product_id).css({'background-color': '#000000','color':'white'});
  //Ajax...

  // In the success callback:
  var button = $('#cartaoMensagemRemover'+product_id);
  //$('#cartao').find(':button').not(button).attr('disabled',true);   // Do not disable the other buttons.
}

function removeCartaotoCart(itemId){
  console.log("Remove "+itemId);
  productSelected = "";               // Remove the product id from "memory"

  $('#cartaoMensagemRemover'+itemId).hide();
  $('#cartaoMensagem'+itemId).show();
  //Ajax...

  // In the success callback:
  var button = $('#cartaoMensagemRemover'+itemId);
  //$('#cartao').find(':button').attr('disabled',false);   // The other buttons aren't disabled... This line is useless.
}