Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Grandsire

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

Recommended Posts

Задача:

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

 

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

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

 

31ytI5A2FV.png

 

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

 

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

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

 

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

Что скажете?

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

 

<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')"
]

Edited by Grandsire

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Edited by Grandsire

Share this post


Link to post
Share on other sites

k4ZDrqqddH.png

 

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

Edited by Grandsire

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

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

XYHWW3xvOv.png

RzJg8fWQQj.png

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...