close

Вход в личный кабинет

download Скачать портал
close

Городской портал

update1.3.1
update15.04.2024
joomla5.0.3

compress Упрощаем вывод связки Марка -> Модель

  • Спасибо получено: 0
calendar 24 нояб 2022 20:24
Доброго суток всем! Можно ли как то упростить подттягивание в 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


Но как теперь вызвать их из бд непонимаю и причем со связкой выбраной ранее марки ((( помогите плиз?!?!?!



это пример вывова для простого подключения:
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>Выбор марка-&gt;модель Ajax</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head><body> <h1>Выбор марка-&gt;модель автомобиля 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 пользователем Александр Митрофанов.

Пожалуйста Войти , чтобы присоединиться к беседе.

У Вас нет прав доступа к этому разделу форума

Скорее всего Вы не оплатили или не продлили подписку

У Вас появится доступ к этому разделу форума только при активной подписке на любой тарифный план

Последнее на форуме поддержки

PRO-PORTAL.info - Готовые скрипты порталов на Joomla © 2017 - 2023 г. Все права защищены.

Наш городской портал на CMS Joomla принадлежит исключительно и только PRO-PORTAL.info. Любое его распространение, копирование, тиражирование, перепродажа, без согласования с разработчиком, категорически ЗАПРЕЩЕНЫ!

ОСТОРОЖНО МОШЕННИКИ!

Уважаемый пользователь! В последнее время в сети появилось множество сайтов, которые предлагают наш продукт по смешным ценам. Среди этих сайтов как различные складчины, так и совершенно непонятные сайты.

Обратите внимание!

Большинство сайтов, которые предлагают купить наш портал по-дешевке - это мошенники. Если даже Вы и получите портал на таком сайте, то больше Вы не получите ни чего! Ни обновлений, ни технической поддержки, ни помощи, как нашей, так и других участников нашей сети порталов

Вы не сможете настроить портал без тех.поддержки

Купив портал, непонятно где, Вы не сможете его настроить самостоятельно! Вам будет необходима наша помощь, но от таких "продавцов" Вы ее просто не получите

5 раз подумайте прежде чем покупать портал на подобных сайтах. Потому что, в последующем, мы не окажем Вам ни какой поддержки и если Вам понадобится помощь, не ответим ни на один, даже самый простой вопрос. Вам придется покупать подписку у нас. Вам придется тратить деньги снова.

Ответственность!

Мы, как разработчик, не несем ни какой ответственности за работоспособность и актуальность портала, который Вы покупаете на других ресурсах.

Купить оригинальный портал "мой Город" на Joomla Вы можете только на нашем сайте pro-portal.info и на kwork.ru (только по этой ссылке... ни по какой другой).

Так же, если Вы перешли с подобного сайта на наш сайт, просим связаться с нами и указать источник, что бы предупредить остальных пользователей.

Будьте внимательны и осторожны. Не позволяйте себя обмануть!