2013-01-25 91 views
0

我有一個小麻煩,獲得工作的PHP和jQuery的Magento的改變從添加到購物車,如果一個選項是在配置的選擇產品選擇預訂按鈕。更改添加到購物車按鈕上預購選擇

PHP的檢查,如果簡單的兒童產品配置的一個有選擇的選項。回聲

<?php 
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); 
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); 

$productMap = array(); 
foreach($col as $simpleProduct){ 
    $productMap[$simpleProduct->getId()] = $simpleProduct->getAttributeText('preorder'); 
    //$test = $simpleProduct->getId() && $simpleProduct->getAttributeText('preorder'); 
} 
?> 

結果:預訂

jQuery來改變按鈕,如果所選擇的產品具有的選項。

<?php if($productMap) { ?> 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 

     // On document ready hide the button to preorder first 
     jQuery("#addtopreorder").hide(); 
     jQuery("#addtocart").show(); 
     jQuery("#<?=$productMap ?>").change(function() { 
      // Hide the button to preorder on slect element change action 
      jQuery("#addtopreorder").hide(); 

      // Get the value of selected option 
      var optionValue = jQuery(this).attr('value'); 
      // Just a test to see if you're getting option value 
      //alert(optionValue); 
      // Get the content (aka inner HTML) of selected option 
      var optionValueText = jQuery.trim(jQuery('#<?=$productMap ?> :selected').text()); 

      // Just a test to see if you're getting right selected option inner text 
      // alert(optionValueText); 
      // alert('Selected option has value: ' + optionValue + ' and inner text: ' + optionValueText); 

      // Show the button based on selected value 
      // Whatch out, case sensitive... 
      if(! optionValue){ 
       jQuery("#addtocart").show(); 
      } else { 
       jQuery("#addtopreorder").show(); 
      } 
     }); 
    }); 
</script> 

任何幫助表示讚賞。

回答

相關問題