Сначала посмотрите мою базу данных.https://imgur.com/QWgN9UA Марка и модель важны только для вас.Когда пользователь выбирает марку «AJP», мне нужно только показать ему модель для этой марки.Пример при выборе из выпадающего списка AJP получить модель "PR4 125 ENDURO", PR4 125 SUPERMOTOAD "и" PR4 200 ". Я уже все думаю, но показываю пользователю все модели из базы данных, которые мне нужно показать только связанные с выбранной маркой. Я показываю свой кодЯ хотел бы, чтобы кто-нибудь помог мне без особых изменений существующего кода, если это возможно.
Мой код Php для получения Марки
public function get_marka_data() {
$query = $this->db->query("
SELECT DISTINCT mo.marka
FROM " . DB_PREFIX . "model mo
GROUP BY mo.marka
")->rows;
$data = array_map(function($row){
return array('value'=>$row['marka'],'label'=>$row['marka']);
}, $query);
if (isset($this->request->server['HTTP_ORIGIN'])) {
$this->response->addHeader('Access-Control-Allow-Origin: ' . $this->request->server['HTTP_ORIGIN']);
$this->response->addHeader('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
$this->response->addHeader('Access-Control-Max-Age: 1000');
$this->response->addHeader('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($data));
}
Мой код для получения модели
public function get_model_data() {
$query = $this->db->query("
SELECT DISTINCT mo.model
FROM " . DB_PREFIX . "model mo
GROUP BY mo.model
")->rows;
$data = array_map(function($row){
return array('value'=>$row['model'],'label'=>$row['model']);
}, $query);
if (isset($this->request->server['HTTP_ORIGIN'])) {
$this->response->addHeader('Access-Control-Allow-Origin: ' . $this->request->server['HTTP_ORIGIN']);
$this->response->addHeader('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
$this->response->addHeader('Access-Control-Max-Age: 1000');
$this->response->addHeader('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($data));
}
Мой код в файле шаблона для получения этих данных с помощью ajax
<script type="text/javascript">
$.ajax({
url: 'index.php?route=api/reifenmontage/get_marka_data',
context: document.body,
success: function(data) {
const selectControl = $('#result');
selectControl.html(data.map(ExtractData).join(''));
}
});
function ExtractData(item) {
return ` <option value="${item.value}">${item.label}</option>`;
}
</script>
<script type="text/javascript">
$.ajax({
url: 'index.php?route=api/reifenmontage/get_model_data',
context: document.body,
success: function(data) {
const selectControl = $('#result2');
selectControl.html(data.map(ExtractData).join(''));
}
});
</script>
И, наконец, мой шаблон html
<div id="additionalRow" class="row termin_row">
<div class="col-sm-4 col-xs-12">
<div class="row"><label>Marke und model</label></div>
</div>
<div class="col-xs-12 col-sm-3" style="margin-right:30px;">
<div class="row">
<select class="form-control" id="result">
</select>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="row">
<select class="form-control" id="result2">
</select>
</div>
</div>
</div>