Я использую magento 2.1.0, я новичок в magento, поэтому я не могу получить реальный результат.
Я создал этот блок:
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 моего контроллера. но я не знаю, что там делать, или я должен изменить сценарий. пожалуйста помоги.
Убедитесь, что все указанные ниже файлы существуют в вашем расширении доставки.
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
Других решений пока нет …