- Спасибо получено: 0
Упрощаем вывод связки Марка -> Модель
- TopicStarter Александр Митрофанов
-
- Не в сети

Доброго суток всем! Можно ли как то упростить подттягивание в select box значение о связке марка и модель из полей бд, есть разработчики продающие за копейки базы SQL связок марок и моделей, а также доп полей для автомобилей, с поддержками их! Хочу попробывать реализовать на примере 3 доп полей:
----
таблицы
marka = Марка
model = Модель
В бд есть естественно записи
SELECT * FROM `marka`
id name product
1 ADMIRAL (TIANYE) 1
2 ACURA 1
3 ALFA ROMEO 1
Далее создал в базе
---
SELECT * FROM `model`
id marka name year_from year_to
1 1 Pickup 0 0
2 1 SUV 0 0
3 2 CL 1998 2003
Содал доп поля SQL в Joomla 4:
Марка = pb-marka
Марка = pb-model
Но как теперь вызвать их из бд непонимаю и причем со связкой выбраной ранее марки ((( помогите плиз?!?!?!
это пример вывова для простого подключения:
По аналогии можно также представить модель Страна-> Область->Город если решим этот вопрос! Просто категории из марок и моделей это лишнее по мне! я конечно понимаю что это все индексируется и имеет логику верную, но все же при редактировании документа или еще что и выборе категорий там просто лапшка из авто) та и некторые другие бы категории
ну или через JSON конфигрурировать на примере городов округов и прочего, также и для моделей можно сделать!
github.com/pensnarik/russian-cities
также вот читаю еще один прикол интересный
www.rsjoomla.com/support/documentation/r...ditional-fields.html
----
таблицы
marka = Марка
model = Модель
В бд есть естественно записи
SELECT * FROM `marka`
id name product
1 ADMIRAL (TIANYE) 1
2 ACURA 1
3 ALFA ROMEO 1
Далее создал в базе
---
SELECT * FROM `model`
id marka name year_from year_to
1 1 Pickup 0 0
2 1 SUV 0 0
3 2 CL 1998 2003
Содал доп поля SQL в Joomla 4:
Марка = pb-marka
Марка = pb-model
Но как теперь вызвать их из бд непонимаю и причем со связкой выбраной ранее марки ((( помогите плиз?!?!?!
это пример вывова для простого подключения:
Code:
header("Content-type: text/html; charset=utf-8");
//session_save_path($_SERVER['DOCUMENT_ROOT'].'/log/session');
session_start();
// защита по ip. Вызывать не чаще, чем раз в секунду.
if(isset($_SESSION['telecod_ip'])){
$t=((int)((time()-$_SESSION['telecod_ip'])));
if($t<1)
die('Нельзя обращаться чаще, чем раз в секунду!<option value="0" disabled="disabled" selected="selected">Нельзя обращаться чаще, чем раз в секунду!</option>');}
elseif(isset($_GET['country'])||isset($_GET['region'])||isset($_GET['product']))
die('Включите куки для работы!<option value="0" disabled="disabled" selected="selected">Включите куки для работы!</option>');
$_SESSION['telecod_ip']=time();
define("db_prefix","joomla_"); // префикс всех БД
define("DBName",""); // Имя базы данных
define("HostName","localhost"); // Имя сервера (хост)
define("UserName",""); // Логин
define("Password",""); // Пароль
_USER_SetLocaleRus();
$link = mysqli_connect(HostName, UserName, Password, DBName);
mysqli_select_db($link, DBName);
mysqli_set_charset($link, 'utf8');
mysqli_query($link, "SET NAMES utf8");
$HTTP_REFERER = @$_SERVER['HTTP_REFERER'];
if(!isset($_GET['product'])&&!isset($_GET['marka'])&&!isset($_GET['model'])){}
elseif (!isset($HTTP_REFERER) || (stripos($HTTP_REFERER, $_SERVER['HTTP_HOST']) === false) ){echo "<h1>Доступ с <b>".$HTTP_REFERER."</b> невозможен!</h1>";}
if(isset($_GET['product'])){
echo '<option value=0 selected>Выберите марку</option>';
$res = mysqli_query($link, 'SELECT * FROM '.db_prefix.'marka '.(empty($_GET['product']) ? '' : 'WHERE product=' . intval($_GET['product'])).' ORDER by name');
while(($row = mysqli_fetch_array($res)))
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
exit;
}elseif(isset($_GET['marka'])){
$res = mysqli_query($link, 'SELECT * FROM '.db_prefix.'model WHERE marka='.intval($_GET['marka']).' ORDER by name');
echo '<option value=0 selected>Выберите модель</option>';
while(($row = mysqli_fetch_array($res)))
echo "\n<option value=\"" . $row['id'] . "\"" . ' data-from=' . $row['year_from']. ' data-to=' . $row['year_to']. ">" . $row['name'] . "</option>";
exit;
}elseif(isset($_GET['model'])){
$id_model=intval($_GET['model']);
$res = mysqli_query($link, 'SELECT * FROM '.db_prefix.'model WHERE id='.$id_model.' LIMIT 1');
if(!($row = mysqli_fetch_array($res)))die;
$model=$row['name'];
$id_marka=intval($row['marka']);
$res = mysqli_query($link,'SELECT * FROM '.db_prefix.'marka WHERE id='.$id_marka.' LIMIT 1');
if(!($row = mysqli_fetch_array($res)))die;
$marka=$row['name'];
$product=intval($row['product']);
echo "
<div style='border: #C5D3DC 1px solid; padding: 10px; width: 97%;'>
производитель=<b>".($product==1?' импортное ТС':'отечественное ТС')."</b>
<br/>марка=<b>".$marka."</b>
<br/>модель=<b>".$model."</b>
</div>";
mysqli_close($link);
die;
}
?>
<!DOCTYPE HTML>
<html><head>
<title>Выбор марка->модель Ajax</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>
<h1>Выбор марка->модель автомобиля Ajax</h1>
<table border="0" cellspacing="0" cellpadding="5" align="center">
<tr>
<td width="250">;(ТС)
<td>
<label><input type="radio" value="1" name="product"
onClick="fetch('?product='+this.value)
.then(function(e){e.text().then(function(e) {document.getElementById('marka').innerHTML=e;})})"> Иностранное ТС</label><br>
<label><input type="radio" value="2" name="product"
onClick="fetch('?product='+this.value)
.then(function(e){e.text().then(function(e) {document.getElementById('marka').innerHTML=e;})})"> Отечественное ТС</label><br>
<td width="250">
<tr>
<td colspan="3" class="blank">
<tr>
<td id="markat">Марка ТС
<td><select style="WIDTH: 200px; height:21px" name="marka" id="marka" onLoad='this.focus=false;'
onChange="document.getElementById('model').disabled=false;
fetch('?marka='+this.options[this.selectedIndex].value)
.then(function(e){e.text().then(function(e){document.getElementById('model').innerHTML=e;})})">
<option value=0 selected>Выберите марку</option>
<?
$res = mysqli_query($link, 'SELECT * FROM '.db_prefix.'marka WHERE product=1 ORDER by name');
while(($row = mysqli_fetch_assoc($res)))
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
?>
</select>
<tr>
<td colspan="3" class="blank">
<tr>
<td id="modelt">Модель ТС
<td><select style="WIDTH: 200px; height:21px" name="model" id="model" disabled="disabled"
onChange="var o=this.options[this.selectedIndex];
if(o.getAttribute('data-from')>0){
var obj=document.getElementById('expl');
while (obj.options.length > 0)obj.options.remove(0);
for(var j=0,i=o.getAttribute('data-from');i<=o.getAttribute('data-to');i++){
obj.options[j++]=new Option(i,i);
}
}
">
<option value selected disabled="disabled">Выберите модель</option>
</select>
<tr>
<td colspan="3" class="blank">
<tr>
<td id="explt">Год выпуска ТС
<td><select style="WIDTH: 200px; height:21px" name="expl" id="expl" onChange="document.getElementById('info').innerHTML=
'производитель=<b>'+(document.getElementsByName('product')[0].checked?' Иностранное ТС':'Отечественное ТС')+'</b>'+
'\n<br>марка=<b>'+document.getElementById('marka').options[document.getElementById('marka').selectedIndex].text+'</b>'+
'\n<br>модель=<b>'+document.getElementById('model').options[document.getElementById('model').selectedIndex].text+'</b>'+
'\n<br>год выпуска=<b>'+this.value+'</b>'
">
<option value selected>Выберите значение</option>
<?php for($i=0;$i<=15;$i++) echo "<option value='".$i."'>".(intval(date("Y"))-$i)."</option>\n";
?>
</select>
</table>
<div id="info"></div>
</body></html>
По аналогии можно также представить модель Страна-> Область->Город если решим этот вопрос! Просто категории из марок и моделей это лишнее по мне! я конечно понимаю что это все индексируется и имеет логику верную, но все же при редактировании документа или еще что и выборе категорий там просто лапшка из авто) та и некторые другие бы категории
ну или через JSON конфигрурировать на примере городов округов и прочего, также и для моделей можно сделать!
github.com/pensnarik/russian-cities
также вот читаю еще один прикол интересный
www.rsjoomla.com/support/documentation/r...ditional-fields.html
Последнее редактирование: 24 нояб 2022 22:50 пользователем Александр Митрофанов.
Пожалуйста Войти , чтобы присоединиться к беседе.
У Вас нет прав доступа к этому разделу форума
Скорее всего Вы не оплатили или не продлили подписку
У Вас появится доступ к этому разделу форума только при активной подписке на любой тарифный план