Снова select`ы

123 4
S
На сайте с 30.09.2016
Offline
469
#11
veleg:
Это убрал
echo "obj.options[obj.options.length] = new Option('Выберите город','');\n";

Зачем??? Не надо было.

Когда я писал "удалить", то имел в виду через javascript, и прописал механизм, по пунктам.

В самом начале кода javascript, до объявления всех функций, надо ещё написать строчку

var city;

Второй селект

<select required style="display:none;" id="dhtmlgoodies_city" name="dhtmlgoodies_city" onchange="getDromList(this);delfirst(this);dhtmlgoodies_drom.style.display='block';">
</select>
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
veleg
На сайте с 30.01.2011
Offline
142
#12

Все сделал. Результат тот же.

Точно не здесь ошибка закралась?

<select required id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this);dhtmlgoodies_city.style.display='block';city=0;" placeholder="Выберите область" >
Фигачу Телеграм-ботов ( https://teleg.run/veleg )
S
На сайте с 30.09.2016
Offline
469
#13

Я коммент выше чуть дописал, посмотрите - у Вас так? Конкретно - display.

Короче, просто скопируйте оттуда второй селект и посмотрите, что получится.

veleg
На сайте с 30.01.2011
Offline
142
#14
Sitealert:
Я коммент выше чуть дописал, посмотрите - у Вас так? Конкретно - display.
Короче, просто скопируйте оттуда второй селект и посмотрите, что получится.

Во ништяк ;) :смайл большой палец вверх:

veleg
На сайте с 30.01.2011
Offline
142
#15

Sitealert

Если будет время, можешь посмотреть?

Сколько же с ними мароки то.

Если сменить город, то филиалы очищаются, если сменить регион, то третий селект не исчезает.

Как осуществить, чтобы в 3 select также был пункт Выбрать филиал и в конце пункт - другой филиал? При этом, условия оставить те же: если нет филиалов, то 3 селект display:none; Если просто добавить эти пункты, то селект отображается всегда, независимо есть ли в нем другие пункты или нет.

mendel
На сайте с 06.03.2008
Offline
232
#16
livetv:
Для начала:
PHP - отдельно
HTML - отдельно
А то даже нет желания парсить ваш поток сознания.

Немного грубо, но присоединяюсь. Даже не потому, что мухи с котлетами, а потому что:

veleg:
$query = "SELECT region, id, city FROM city where region =".$_GET['countryCode']; $res = mysqli_query($db, $query);

Вот всё. Приехали. Распрягайте коней.

Ну и далее всё в таком же ключе.

veleg, я даже не буду спрашивать есть ли у вас на этом же сервере что-то ценное. Не буду объяснять что я тут процитировал. Не буду это делать на практике. Думайте. Может вынесете урок.

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
S
На сайте с 30.09.2016
Offline
469
#17

veleg, если желания изменяются по ходу дела, надо и в код соответствующие изменения вносить. В третьем селекте не было двух дополнительных опций - теперь появились. Значит, в функции createSubCategories соответствующая строка будет

if(obj.options.length == 2){dhtmlgoodies_drom.style.display='none'}
А чтобы третий селект исчезал при изменении первого, надо к onchange первого селекта добавить
dhtmlgoodies_drom.style.display='none'

А то, что написал mendel -истинная правда. Я, честно говоря, этот кусок совсем не читал, потому как просто так читать мне лень, а для решения поставленной задачи оно не требовалось. Суть сего справедливого замечания в том, что пользовательские данные перед вставкой в БД надо обязательно обрабатывать - иначе это дыра в безопасности. Через это $_GET['countryCode'] могут выудить всю информацию из БД, со всеми вытекающими последствиями.

А с функцией delfirst() такая хитрость не пройдёт. Если её назначение расширяется, надо её изменить. Вместе с объявлением переменной city надо объявить переменную drom, вот так: var city,drom; и изменить саму функцию, например

function delfirst(sel,s){
if(s=='city' && city==0){
sel.options[0]=null;
city=1;
}else if(s=='drom' && drom==0){
sel.options[0]=null;
drom=1;
}
}
Во втором селекте drom=0, вызов соответственно delfirst(this,'city') и delfirst(this,'drom')
mendel
На сайте с 06.03.2008
Offline
232
#18
Sitealert:
Суть сего справедливого замечания в том, что пользовательские данные перед вставкой в БД надо обязательно обрабатывать - иначе это дыра в безопасности. Через это $_GET['countryCode'] могут выудить всю информацию из БД, со всеми вытекающими последствиями.

Почему только читать? Намного интереснее писать в базу.

Скромненько в список городов добавить iframe на эксплоиты, лить троянов посетителям.

Ну и фильтрация ввода это не совсем панацея. Тем более со своим велосипедом.

Нужно сразу уходить от устаревших библиотек к PDO и параметрам. А вообще не велосипедить, и использовать какой-то ORM и соответственно какой-то фреймворк.

Рано еще велосипедить. Опыта мало.

S
На сайте с 30.09.2016
Offline
469
#19
mendel:
Почему только читать? Намного интереснее писать в базу.

А это уже

со всеми вытекающими последствиями
:)
mendel
На сайте с 06.03.2008
Offline
232
#20

Вы знаете... я встречал НЕСКОЛЬКО персонажей которые считали что то что их сливают и т.п. это нормальная ситуация. Ну скопировали клиентскую базу со всеми продажами, телефонами и т.п. с магазина. Это что повод дергаться? сайт то работает дальше. Так что проблемы и нет :)

Считаю что надо прямым текстом говорить наиболее веселый сценарий. Тем более что инъекции дело стандартное, ломают не люди а обычно роботы, а они больше по тому чтобы тебе что-то подсунуть, а не скачать.

Раз уж вы развенчали мою "интригу" (я надеялся ТС сам по подчеркнутым вещам нагуглит), то надо говорить прямо)

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий