Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Меню или ступенчатый выбор в окнах?

Опубликовано:

Задача:

Есть 55 строк,в каждой до 8 уровней,в каждом до 30 примерно и в каждом до 20-и...

 

Вариант первый=

создать такую форму

 

31ytI5A2FV.png

 

Скрипт лицензионный лежит ТУТ,но он на 9 строк и поменьше далее.Непонятно опять же(для меня) где в скрипте че-то зашито ограничивающее его работу. Если это устранимо,то как там сделать свою иерархию...Посмотрев на яву я подозреваю,что там надо как-то ID каждой строки обозначать.А главное как все это увязать по ссылкам в конечном итоге..Что бы выбрав-попасть все же в нужное место.Они прописываются в последнем окне?

 

Вариант второй

Делать вертикальное меню с такой кучей уровней?)))))))Это ж сколько "буковок" надо.))

 

Какой путь грамотней,кроссбраузерней,быстрее в работе и удобней для Пользователя?

Что скажете?

Если все же первый к чему и сам склонен,то кто поможет код адаптировать или написать свой под мою задачу(не за пиво ;) )

Рекомендованные сообщения

Опубликовано:

Я даже не знаю.

Мы сейчас переводом ipb 3 занимаемся, у ребят еще и сессия параллельно.

Попробуйте выцепить Влада – Dr.Freddy.

Его координаты найдете на странице контакты.

Он справится с задачей, хотя тоже занят, работа + дочка недавно родилась...

Опубликовано:
  • Автор

Спасибки..Я тут попробовал его поставить..Появилось все в оригинале-работает.Попробовал свои строчки формировать-получилось-до последнего окна добрался и тут стопор.))Не пойму куда конечную ссылку писать,что бы получить запрос.

А так идея этих окон очень заманчива-удобно делать глубокую навигацию при большом дереве уровней.)

Может что-то надо тут изменить?

 

 

<script language=javascript>

/*

Milonic SCombo - javascript SELECTive Combo boxes.
Version 1.2 - Built: Tuesday August 24 2004
Copyright 2004 (c) Milonic Solutions Limited. All Rights Reserved.
This is a commercial software product, please visit http://www.milonic.com/ for more information.
See http://www.milonic.com/license.php for Commercial License Agreement
All Copyright statements must always remain in place in all files at all times
*******  PLEASE NOTE: THIS IS NOT FREE SOFTWARE, IT MUST BE LICENSED FOR ALL USE  ******* 

License Number: Unlicensed

*/

_d=document
SCombo = new Array()

// Custom Stuff goes here: ---------------------------------------------------------------
// Only the next 8 lines need to be edited. You need to tell SCombo which SELECT Boxes are 
// part of the SCombo system and you need to declare the names of the data arrays.

SCombo[0]=SComboContinents			   // Continent Array Data
SCombo[1]=SComboCountries				// Country Array Data 
SCombo[2]=SComboStates				   // State Array Data
SCombo[3]=SComboCities				   // City Array Data

frm1=_d.qsearch['region']		// Form SELECT container for Continents
frm2=_d.qsearch['country']	   // Form SELECT container for Countries
frm3=_d.qsearch['stateprovince'] // Form SELECT container for States
frm4=_d.qsearch['city']			// Form SELECT container for Cities

						// property: onlyPopulateNextBox
onlyPopulateNextBox=false;  // Set to true SCombo will only display data for the only next select box in the sequence.
						// Set to false it will display ALL the data for all select Boxes


						// property returnTextValues
returnTextValues=false;	 // Set to true will change the values returned to your CGI script
						// True will return the text equivalent and false will return the numerical indentifier

// End of custom stuff. ------------------------------------------------------------------

function changeReturnValues()
{
if(returnTextValues)
{
	for(_a=1;_a<=SCombo.length;_a++)
	{
		frm=eval("frm"+_a)
		fSi=frm.selectedIndex
		if(fSi>-1)
		{
			frm[fSi].value=frm[fSi].text
		}
	}
}
}


function getSelNumber(sel)
{
testnumber=0;
gotnumber=0;
while(!gotnumber)
{
	testnumber++;
	if(eval("frm"+testnumber).name == sel.name)gotnumber=1;
}
return testnumber;
}

function getSelValue(sel)
{
if (sel.selectedIndex == -1) return ("");
return sel[sel.selectedIndex].value;
}

function pdchange(sel)
{
num=getSelNumber(sel)
populateBoxesTo=SCombo.length

if(window.onlyPopulateNextBox)populateBoxesTo=num+1

for(x=num;x<SCombo.length;x++)
{
	par=SCombo[x]
	frm=eval("frm"+(x+1))
	frm.length=0;
	for(a=1;a<par.length;a++)
	{
		if(x<populateBoxesTo)
		{

			if(getSelValue(sel)==par[a+x-1])
			{
				opt=new Option(par[a+1+x], par[a+x]);
				j=frm.length;
				frm[j]=opt;
			}
		}
		a+=x+2
	}
}

parv=getSelNumber(sel)
par=SCombo[getSelNumber(sel)-1]
lnk=par[getSelValue(sel)*(parv+2)];
if(lnk)location.href=lnk

}

function allFillSelect(what)
{
par=SCombo[+what-1]
frm=eval("frm"+what)
frm.length = 0;
for(a=1;a<par.length;a++)
{
	opt=new Option(par[a+what], par[a+what-1]);
	j = frm.length;
	frm[j]=opt;		
	a=a+what+1
}
}



function pdSet(sel, txt, bywhat)
{

frm=eval("frm"+sel)
if(frm.length<2)allFillSelect(sel)
for(a=0;a<frm.length;a++)
{
	if((bywhat=="text" && frm[a].text==txt) || (bywhat=="id" && frm[a].value==txt))
	{
		frm.selectedIndex=a
		pdchange(frm)
	}
}
}




function pdSetByText(sel,txt)
{
allFillSelect(sel)
frm=eval("frm"+sel)
for(a=0;a<frm.length;a++)
{
	if(frm[a].text==txt)	
	{
		frm.selectedIndex=a
		pdchange(frm)
	}
}
}

function pdSetByID(sel,txt)
{
allFillSelect(sel)
frm=eval("frm"+sel)
for(a=0;a<frm.length;a++)
{
	if(frm[a].value==txt)	
	{
		frm.selectedIndex=a
		pdchange(frm)
	}
}
}

function changeData(what)
{
par=SCombo[+what-1]
frm=eval("frm"+what)
frm.length = 0;
for(a=1;a<par.length;a++)
{
	opt=new Option(par[a+what], par[a]);
	j = frm.length;
	frm[j]=opt;		
	a=a+what
}
}


pdSet(1,"Europe","text")			 // Tell SCombo to jump to the text item: 'Europe' in Box 1
pdSet(2,"United Kingdom","text")	 // Tell SCombo to jump to the text item: 'United Kingdom' in box 2
pdSet(3,"West Midlands","text")	  // Tell SCombo to jump to the text item: 'West Midlands' in box 3

//pdSet(1,6,"id")					  // Tell SCombo to jump to the item with id of 6 in box 1
//pdSet(2,193,"id")					// Tell SCombo to jump to the item with id of 193 in box 2
//pdSet(3,106,"id")					// Tell SCombo to jump to the item with id of 106 in box 3

//allFillSelect(1)					 // Tell SCombo to show ALL data in box 1
//allFillSelect(2)					 // Tell SCombo to show ALL data in box 2
//allFillSelect(3)					 // Tell SCombo to show ALL data in box 3
//allFillSelect(4)					 // Tell SCombo to show ALL data in box 4


</script>

 

 

А скрипт последнего окна вот такой..Первая строчка с адресом моя..но так не работает конечно..метод тыка не уместен в этом случае))

 

/*

Milonic SCombo - javascript SELECTive Combo boxes.
Version 1.0 - Built: Tuesday April 6 2004
Copyright 2004 (c) Milonic Solutions Limited. All Rights Reserved.
This is a commercial software product, please visit http://www.milonic.com/ for more information.
See http://www.milonic.com/license.php for Commercial License Agreement
All Copyright statements must always remain in place in all files at all times
*******  PLEASE NOTE: THIS IS NOT FREE SOFTWARE, IT MUST BE LICENSED FOR ALL USE  ******* 

License Number: Unlicensed

*/




// Syntax for Cities is:
// , Continent ID, CountryID, StateID, City ID, "Country Name", Hyperlink(optional)

SComboCities=["Cities"
,  2,  60,   1, 1, "тест темы","('http://hondamaster.ru/index.php?showtopic=58')",		 
,  6, 193, 106, 1, "Birmingham", "java script:alert('You Selected Birmingham')"
,  6, 193, 106, 2, "Solihull", "java script:alert('You Selected Solihull')"
,  6, 193, 106, 3, "Dudley", "java script:alert('You Selected Dudley')"
]

Изменено пользователем Grandsire

Опубликовано:

Вот честное слово, заказы отложила, перевожу в АЦ раздел для управления скинами.

Некогда смотреть даже.

Опубликовано:
  • Автор

Да тут нет никакой спешки)))

ага...если вот ссылку вот так написать в последнем окне-то работает

,  2,  60,   1, 1, "тест темы1",'http://hondamaster.ru/index.php?showtopic=58'

Но..тогда зачем нам надо еще отдельное окно "Подача запроса" Наверно в оригинале ссылка иначе должна прописываться без активного клика в последнем окне..

Хмм-можно тогда упростить и не пользоваться им,если и так задача добраться до конечной точки получилась))))

Изменено пользователем Grandsire

Опубликовано:
  • Автор

k4ZDrqqddH.png

 

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

Изменено пользователем Grandsire

Опубликовано:
  • Автор

Рано радовался)))

 

Но гадость какая-то все же сидит в скрипте))) Когда одна строка была-все нормально...Но когда прописал первую пачку и везде сделал уникальные циферки в адресах..вроде все правильно,но в последнем окне стало выдавать странно по набору из второго окна..

Вот скрин всех четырех окон сразу)))

http://ipicture.ru/Gallery/Viewfull/19559970.html

Вроде все логично пишу...Пока стопор в голове))

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

XYHWW3xvOv.png

RzJg8fWQQj.png

Опубликовано:
  • Автор

Разобрался с алгоритмом написания уникальных адресов в каждом окне))Оказалось скрипт написан на построчную нумерацию в каждом окне индивидуально))

Все с этими окошками ясно

Начал заливать инфо потихоньку.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.