Почему JS не срабатывает если параметр задан двуми словами?
Здравствуйте. Столкнулся с проблемой.
Проблема в том, что если $SELL_CAT_HOUSEWARE = "Домашняя утварь"; то код не работает (не появляется подкатегория), а если $SELL_CAT_HOUSEWARE = "Домашняяутварь"; //если одним словом то код работает. Подскажите в чем ошибка и как ее можно исправить? Код: <?php $SELL_CAT_SUNDRY = "Разное"; $SELL_CAT_HOUSEWARE = "Домашняя утварь"; $SELL_CAT_STATIONERY = "Канцтовары"; ?> <script type="text/javascript"> var podcatArray = { <?php echo $SELL_CAT_SUNDRY;?> : {<?php echo $SELL_CAT_HOUSEWARE;?>:"<?php echo $SELL_CAT_HOUSEWARE;?>",<?php echo $SELL_CAT_STATIONERY ;?>:"<?php echo $SELL_CAT_STATIONERY ;?>"}, ChevroletCorvette : {black:"Черный",blue:"Синий"}, FerrariEnzo : {green:"Зеленый",black:"Черный",yellow:"Желтый"} } function getpodcat(_this){ var podcat = podcatArray[_this.value]; var _select = document.getElementById("podcat"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in podcat){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(podcat[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } _select.style.display="inline"; } </script> </head> <body> <form action="index.php" method="get"> <fieldset> <legend><label for="models">Модели</label></legend> <select id="cat" name="cat" onchange="getpodcat(this)"> <option value="<?php echo $SELL_CAT_SUNDRY;?>"><?php echo $SELL_CAT_SUNDRY;?></option> <option value="ChevroletCorvette">Chevrolet Corvette</option> <option value="FerrariEnzo">Ferrari Enzo</option> </select> </fieldset> <fieldset> <legend> <label for="podcat">Подкатегория</label></legend> <select id="podcat" name="podcat"></select> </fieldset> <fieldset> <input type="submit" value="Выбрать" /> </fieldset> </form> |
Amateur, это вроде как даже не JS... А ты такое в "Javascript под браузер" разместил...
|
Потому что ключи объектов должны состоять из латинских букв, цифр и символов $ и _. Если есть другие символы, ключ нужно брать в кавычки:
var podcatArray = { *!*"*/!*<?php echo $SELL_CAT_SUNDRY;?>*!*"*/!* : {*!*"*/!*<?php echo $SELL_CAT_HOUSEWARE;?>*!*"*/!*:"<?php echo $SELL_CAT_HOUSEWARE;?>", |
ksa,
здесь основное это код <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray = { BentleyAzure : {red:"Красный",green:"Зеленый"}, ChevroletCorvette : {black:"Черный",blue:"Синий"}, FerrariEnzo : {green:"Зеленый",black:"Черный",yellow:"Желтый"} } // Функция, заполняющая список цветами доступными для выбранной модели. function getColors(_this){ var colors = colorsArray[_this.value]; var _select = document.getElementById("colors"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in colors){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(colors[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } </script> остальное только для того, чтобы показать реализацию. |
Sweet,
спасибо, работет |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 01:05. |