2017-01-17 19 views
0

私はmagento 2.1.0を使用しています。私はmagentoを初めて使用していますので、実際の結果を得ることはできません。onchangeイベントmagento 2

私はこのブロック作成しました:

public function serviceArea() { 
    return $this->getArea1('2'); 
} 

public function getArea1($city_id) { 
    return $this->areaModel->getCollection()->addFieldToFilter('city_id',$city_id); 

} 

を、私は次のように呼び出しています:

$areaCollection = $block->getLayout()->createBlock('XXXX\Vac \Block\Vac')->serviceArea(); 
print_r($areaCollection->getData()); 

私はこのような出力になっています:今

Array ([0] => Array ([area_id] => 1 [area] => banashankari [city_id] => 2) [1] => Array ([area_id] => 2 [area] => madiwala [city_id] => 2) [2] => Array ([area_id] => 3 [area] => btm layout [city_id] => 2)) 

を、私はこれが欲しいです私の交換プロセスのために、私がドロップダウンで都市を変えるときのように、私のエリアはそれに応じて変わるでしょう。

です。私はスクリプトを書く:

<script> 
    require(['jquery'], function(jQuery) { 
     jQuery('#city').on('change', function() { 
      jQuery.ajax({ 
       url: "<?php echo $this->getBaseUrl('*/*/*', ['_current' => true, '_use_rewrite' => true]).'Vac/area/index/'; ?>", 
       // url: "getAjaxUrl()", 
       data: {city_id: jQuery("#city").val()}, 
       type: "POST", 
       success: function(data) { 
        jQuery('#area').html(data['html']); 
       } 
      }); 
     }); 
    }); 
</script> 

スクリプトで、私は私のコントローラのURLを与えた。私はそこで何をすべきかわからない、またはスクリプトを修正する必要があります。助けてください。

+0

コントローラから適切な応答を設定する必要があり、そのレスポンスに基づいて、Jqueryのアクションでドロップダウンに表示するコードを実行する必要があります。 –

+0

@サム:答えはありますか? –

+0

@MujeebuRahman:はいmujeebu、私は答えを持って、ちょうどループを使用してコントローラの実行機能を記述する必要があります – sam

答えて

0

下記のすべてのファイルが配送延長内に存在することを確認してください。

view/ 
└── frontend 
    ├── layout 
    │ ├── checkout_cart_index.xml 
    │ └── checkout_index_index.xml 
    └── web 
     └── js 
      ├── model 
      │ ├── shipping-rates-validation-rules.js 
      │ └── shipping-rates-validator.js 
      └── view 
       └── shipping-rates-validation.js 
関連する問題