[英]How to connect two columns from the table to the selected column showing only related results? Php, Javascript, Jquery
首先看一下我的數據庫。 https://imgur.com/QWgN9UA標記和模型僅對您很重要。 當用戶選擇“ AJP”標記時,我只需要向他顯示該標記的模型。 從下拉列表AJP中選擇的示例獲取模型“ PR4 125 ENDURO”,“ PR4 125 SUPERMOTOAD”和“ PR4 200”。我已經做了任何思考,但是我向用戶顯示了數據庫中的所有模型,我只需要顯示與所選標記相關的模型。 ,如果可能的話,我希望有人在不更改現有代碼的情況下為我提供幫助。
我的PHP代碼可獲取Marka
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>
問題出在查詢中,而不是GROUP BY ...,請使用WHERE m.marka ='',將marka傳遞給腳本。
首先將標記渲染到頁面上,選擇了某些標記后,將請求發送到服務器(首先將第一個參數添加到函數get_marka_data($ marka)中)
SELECT DISTINCT mo.marka
FROM " . DB_PREFIX . "model mo
WHERE mo.marka = " . $marka
當您獲得響應時,將其下拉到頁面
別忘了驗證!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.