нужно адаптировать скрипт под ассоциативный массив
здраствуйте,
нашел неплохой скриптик, полностью меня устраивающий кроме одного: он написан под индексный массив, а в моем случае массив получается ассоциативный. сам скрипт найден здесь и в оригинале выглядит так: но в моем случае пхп получает инфу из мускула и отправляет следующую строку var aHouseValues = new Array(); aHouseValues["коммунарский"] = "16/6, 20, 115"; aHouseValues["красноармейская"] = "20"; aHouseValues["гастелло"] = "120"; aHouseValues["мерлина"] = "20"; aHouseValues["кукушкина"] = "100"; и список улиц <select name="street"> формируется по запросу из мускл. пробовал сделать индексный массив - номера домов одной улицы лепятся к другой, а ее дома к третьей. индексы не сходятся. собсно мне нужна ваша помощь, чтобы переиначить скрипт, так как убив уйму времени, я так и не смог понять как переиначить скрипт самостоятельно, в силу того что яваскрипт для меня лес темный... :help: :) |
почти получилось, осталось мелочь...
сейчас скрипт выглядит так
<!--
var aHouseValues = new Array();
aHouseValues["коммунарский"] = "16/6, 20, 115";
aHouseValues["красноармейская"] = "20";
aHouseValues["гастелло"] = "120";
aHouseValues["мерлина"] = "20";
aHouseValues["кукушкина"] = "100";
// ф-ция, возвращающая массив домов по заданной улице
function getHouseValuesByStreet(param){
var sHouseValues = aHouseValues[param];
return sHouseValues.split(", "); // преобразуем строку в массив домов
}
// главная ф-ция, выводящая динамически список домов
function MkHouseValues(param){
var aCurrHouseValues = getHouseValuesByStreet(param);
var oHouseList = document.forms["address"].elements["house"];
var oHouseListOptionsCnt = oHouseList.options.length;
oHouseList.length = 0; // удаляем все элементы из списка домов
for (aCurrHouseValue in aCurrHouseValues){
// далее мы добавляем необходимые дома в список
if (document.createElement){
var newHouseListOption = document.createElement("OPTION");
newHouseListOption.text = aCurrHouseValues[aCurrHouseValue];
newHouseListOption.value = aCurrHouseValues[aCurrHouseValue];
// тут мы используем для добавления элемента либо метод IE, либо DOM, которые, alas, не совпадают по параметрам…
(oHouseList.options.add) ? oHouseList.options.add(newHouseListOption) : oHouseList.add(newHouseListOption, null);
}else{
// для NN3.x-4.x
oHouseList.options[aCurrHouseValue] = new Option(aCurrHouseValues[aCurrHouseValue], aCurrHouseValues[aCurrHouseValue], false, false);
}
}
}
// инициируем изменение элементов в списке домов, в зависимости от текущей улицы
MkHouseValues(document.forms["address"].elements["street"].value);
//-->
а форма так <form name="address" action="#"> Улица: <select name="street" onChange="MkHouseValues(this.Value)"> <OPTION VALUE="гастелло">гастелло</OPTION> <OPTION VALUE="коммунарский">коммунарский</OPTION> <OPTION VALUE="красноармейская">красноармейская</OPTION> <OPTION VALUE="кукушкина">кукушкина</OPTION> <OPTION VALUE="мерлина">мерлина</OPTION> </select> Дом: <select name="house"> <option value="N/A">выберите улицу</option> </select> </form> если в форме вместо <select name="street" onChange="MkHouseValues(this.Value)"> я поставлю <select name="street" onChange="MkHouseValues('коммунарский' )"> то дома по коммунарскому находятся. то есть осталась одна проблема - корректно передать value из option в яваскрипт... помогите пожалуйста |
блин, неужели никто не поможет? =(
|
metis,
javascript язык регистрозависимый !!! <select name="street" on |
блин, заработало! и правда проблема в регистре оказалась=) спасибо!
|
Цитата:
|
Цитата:
<iframe name='FOO'> </iframe> <form target='foo'> <input type='submit' value='всё относительно' /> </form> |
Как в этом скрипте для каждого значения option задать отдельный value?
|
| Часовой пояс GMT +3, время: 07:11. |