@kozlovskydan

Как построить выпадающие селекты?

Здравствуйте. Помогите в вопросе. Есть две таблицы: attribute и attribute_value. Содержимое таблиц следующее:

attribute
id - 3
name - модель автомобиля

id - 4
name - марка автомобиля

attribute_value
id - 1
value - ГАЗ
attr_id -3

id - 3
value - ЗАЗ
attr_id - 3

id - 3
value - ВАЗ
attr_id - 3

id - 4
value - модель такая-то 1
attr_id - 4

id - 5
value - модель такая-то 2
attr_id - 4

Полный еав получается, ну вы понимаете.

Инфу из этих таблиц вывожу в select лишь вот это:
<p>Марка  автомобиля </p>
<select name="attribute[3]">
<option value="58">ГАЗ</option>
<option value="59">ЗАЗ</option>
<option value="60">ВАЗ</option>
</select>


Ну тут как и что мне все понятно. Но требуется чтобы если я кликую допустим на ГАЗ у которого value 58, он мне выдавал селект, где

<p>Модель  автомобиля </p>
<select name="attribute[4]">
<option value="4">модель такая-то 1</option>
<option value="5">модель такая-то 2</option>
</select>


В общем связанные селекты. На форнд энде у меня вопросов нет, как сделать знаю. А вот как лучше сделать выборку из базы нет :( Как прописать дополнительное поле, а главное в какое таблице, чтобы я смог вывести то что мне нужно, например по тому же value="58"
  • Вопрос задан
  • 259 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Так ведь эти атрибуты не сами по себе, наверняка они связаны с таблицей объектов, так вот надо выбрать объекты по атрибуту из первого селекта, затем выбрать для полученных объектов атрибуты для второго селекта. В принципе достаточно один запрос с JOIN'ами.
Ну или между атрибутами изначально существует связь сама по себе, тогда она тоже где-то должна определяться, в самом общем случае таблицей (attr1_value_id, attr2_value_id).
Ответ написан
@Angelxalfa
Если я правильно понял, то у меня была похожая проблема, только с выбором квартир в доме на улице...
Я ее решил через AJAX.
Смысл в том, что ставишь событие в аякс скрипте, что при изменении такого-то селекта, обратится к такому-то php-скрипту и передать ему POST методом данные из селекта, а этот скрипт, с учетом полученных данных, снова слазит в базу, получит желаемые модели машин, и вернет их AJAX скрипту, который выведет их на страничку...
Код АЯКС-скрипта:

<script type="text/javascript">
		$(document).ready(function(){  
          
		   $('#ID СЕЛЕКТА').change(function(){  
				var model = $("#ID СЕЛЕКТА").val();
                $.ajax({  
                    type: "POST",  
                    url: "АДРЕС СКРИПТА",  
                    data: { model : model }, 
                    success: function(html){  
                        $("#ID БЛОКА ГДЕ БУДЕТ ВЫВОД").html(html);  
                    }  
                });  
                return false;  
            });   
        });  
				
		</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы