Disclaimer: я не являюсь php-программером. Моих знаний хватает лишь на настучать по голове пых-пых (ш)кодеру, когда он пишет откровенную ахинею.
Ситуация: есть СУБД. В ней — таблица со списком атрибутов.
И список объектов, одним из полей описания которых являются значения из вышеупомянутого списка.
Есть форма с двумя полями типа «подстановка из списка значений».
Первое — тот самый список атрибутов.
Второе — список объектов.
Хотелось бы сделать так, чтобы при задании значения первого поля пооизводилась фильтрация доступных для подстановки значений второго поля по заданному знчению первого поля (т.е. чтобы выводился не весь список объектов, а только те объекты, в которых значение атрибута совпадает с заданным в первой форме)
Мнения нашего пых-пх (ш)кодера варьируются от долго/сложно до невозможно.
Мне же почему-то кажется, что всё не так сложно…
Не подскажете?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Это надо на JavaScript делать. Потому что когда страница выплюнута, PHP уже отработал. Как вариант: можно сделать с sumbit, но лучше на JavaScript.
Можешь предложить решение?
Насколько я понимаю, без AJAX тут особо не сделаешь. Потому что, ясное дело, что JS не видит PHP-шных объектов. А сам PHP уже отработал. Надо помурыжить кого-нибудь из web-кодеров, сам я в вебне не рублю.
P.S. Народ советует использовать <font color=«blue»>jQuery</font>.
Javascript обалденно хорош тем, что всегда доступны исходники.
Тебе всего навсего надо было поискать в нете страничку с похожим функционалом.
Простейший вариант, на вытаскивание которого из сорца странички у меня ушло двадцать минут (я совершенно не знаю javascript):
<html>
<body>
<script language=«javascript» type=«text/javascript»>
</script>
function Display(which) {
var RegArray = new Array();
RegArray["one"]=«Раз»;
RegArray["two"]=«Два»;
for (k in RegArray) {
if (which==RegArray[k]) {
document.getElementById(k).style.display=«block»;
} else {
document.getElementById(k).style.display=«none»;
}
}
}
</script>
</head>
Choose one or two</h2>
<form action="» method=«post»>
<select name=«num» onchange=«Display(this.value)»>
<option value=«Раз»>Разз</option></option>
<option value=«Два»>Дваа</option></option>
<option value=«1_aaa»>1_aaa</option></option>
<option value=«1_bbb»>1_bbb</option></option>
<option value=«1_bbb»>1_ccc</option></option>
<option value=«2_aaa»>2_aaa</option></option>
<option value=«2_bbb»>2_bbb</option></option>
<option value=«2_bbb»>2_ccc</option></option>
</select>
</form>
</body>
</html>
Ну если без AJAX, то страница будет огроменная. Это же надо будет запихать в неё на этапе генерации всё то добро из БД, о котором говорилось в первом посте. Не говоря уже о том, что PHP-объекты (тоже упоминались) из JS не будут видны.
Да, но, если я правильно понял вопрошающего, сейчас и так «всё то добро из БД» в страницу пихается, значит, не такая уж и большая страница.
Если объёмы позволяют запихать всё в страницу, тогда, ясное дело, никаких AJAX’ов не нужно, да.
Поподробнее про объёмы/ограничения можно.
В моём случае ожидается список из ~300 +-50 строк.
А что тут подробнее? Запихай в страницу, посмотри, какого размера она получилась, и решай сам — устраивает тебя страница такого размера или нет. А ограничений никаких нет, это же HTML.