3

Magento 1.6.2 で新しい都道府県と市区町村のドロップダウンを追加するにはどうすればよいですか? 国として米国を選択すると、都道府県のドロップダウン リストが表示されます。ただし、これはすべての国で利用できるわけではありません。

私が望むのは - 国 (例としてアイルランド) を選択すると、その国のドロップダウンにすべての州/県が表示され、州/県を選択すると、その州の下のドロップダウンにすべての都市が表示されます/州。どうすればこれらを行うことができますか。

都道府県の部分をオンラインで追加するためのリンクを見つけました。しかし、都市には手がかりがありません。ここにリンクhttp://www.manojyadav.co.in/magento/adding-stateprovince-india-sql-magento/

州の都市を自分の都市に置き換えることができるファイルをあなたから入手できれば、それは大きな助けになるでしょう.

4

3 に答える 3

2

市区町村をドロップダウン オプションとして設定する場合は、次の手順に従ってください。
手順スケルトン モジュールが既に作成されている
と仮定します。1.都市に人口を配置するための機能を追加します。 ファイル: コード:MagePsycho_Citydropdown

app/code/local/MagePsycho/Citydropdown/Helper/Data.php

<?php
/**
 * @category   MagePsycho
 * @package    MagePsycho_Citydropdown
 * @author     magepsycho@gmail.com
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
class MagePsycho_Citydropdown_Helper_Data extends Mage_Core_Helper_Abstract
{
    public function getUaeCities()
    {
        $helper = Mage::helper('directory');
        $cities = array(
            $helper->__('Abu Dhabi'),
            $helper->__('Ajman'),
            $helper->__('Al Ain'),
            $helper->__('Dubai'),
            $helper->__('Fujairah'),
            $helper->__('Ras al Khaimah'),
            $helper->__('Sharjah'),
            $helper->__('Umm al Quwain'),
        );
        return $cities;
    }

    public function getUaeCitiesAsDropdown($selectedCity = '')
    {
        $cities = $this->getUaeCities();
        $options = '';
        foreach($cities as $city){
            $isSelected = $selectedCity == $city ? ' selected="selected"' : null;
            $options .= '<option value="' . $city . '"' . $isSelected . '>' . $city . '</option>';
        }
        return $options;
    }
}

: データベース テーブルに都市を入力して、より動的にすることもできます。たとえば、地域に似た次のテーブルを作成できます:
+ directory_country_city (city_id, country_id, code, default_name)
+ directory_country_city_name (locale, city_id, name)

2. javascript
2.1を使用して、入力テキストの都市フィールドをドロップダウンに置き換えます。
ファイル:app/design/frontend/[package]/[theme]/template/checkout/onepage/billing.phtml
コード: 上記のテンプレートの最後に次のコードを追加します。

<script type="text/javascript">
    <?php
    $helper          = Mage::helper('citydropdown');
    $address         = Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress();
    $defaultCity     = $address->getCity();
    $citiesOptions   = addslashes($helper->getUaeCitiesAsDropdown($defaultCity));
    ?>

    var billingCity = '<?php echo $defaultCity ; ?>';
    function billingSwitchCityField(){
        var selectVal = jQuery('#billing\\:country_id option:selected').val();
        if(selectVal == "AE"){
            jQuery("#billing\\:city")
            .replaceWith('<select id="billing:city" name="billing[city]" class="required-entry">' +
                  '<option value=""></option>' +
                  '<?php echo $citiesOptions; ?>' +
                '</select>');
        }else{
            jQuery("#billing\\:city")
            .replaceWith('<input type="text" class=" input-text required-entry absolute-advice " title="City" value="' + billingCity + '" id="billing:city" name="billing[city]" autocomplete="off">');
        }

    }
   jQuery(document).ready(function(){
        billingSwitchCityField();
        jQuery('#billing\\:country_id').change(function() {
            billingSwitchCityField();
        });
   })
</script>

2.2
ファイル:app/design/frontend/[package]/[theme]/template/checkout/onepage/shipping.phtml
コード: 上記のテンプレートの最後に次のコードを追加します

<script type="text/javascript">
    <?php
    $helper          = Mage::helper('citydropdown');
    $address         = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
    $defaultCity     = $address->getCity();
    $citiesOptions   = addslashes($helper->getUaeCitiesAsDropdown($defaultCity));
    ?>




    var shippingCity = '<?php echo $defaultCity ; ?>';
    function shippingSwitchCityField(){
        var selectVal = jQuery('#shipping\\:country_id option:selected').val();
        if(selectVal == "AE"){
            jQuery("#shipping\\:city")
            .replaceWith('<select id="shipping:city" name="shipping[city]" class="required-entry">' +
                  '<option value=""></option>' +
                  '<?php echo $citiesOptions; ?>' +
                '</select>');
        }else{
            jQuery("#shipping\\:city")
            .replaceWith('<input type="text" class=" input-text required-entry absolute-advice " title="City" value="' + shippingCity + '" id="shipping:city" name="shipping[city]" autocomplete="off">');
        }




    }
   jQuery(document).ready(function(){
        shippingSwitchCityField();
        jQuery('#shipping\\:country_id').change(function() {
            shippingSwitchCityField();
        });
   })
</script>
  1. チェックアウト ページをリロードすると、アラブ首長国連邦の都市オプションが表示されます

同様の方法で、他の国の都市オプションも設定できます。同様の方法で、他の国の都市オプションも設定できます。

于 2013-07-16T06:38:13.600 に答える
0

Aitoc チェックアウト フィールド マネージャーをご覧ください。新しいモジュールを作成しなくてもそのフィールドを追加でき、カスタム ジョブを作成するために誰かを雇うよりも安価になる可能性があります。

于 2012-06-27T16:52:50.847 に答える