Помогите ну не как получается! есть массив на Джаве var colorsArray = { "BentleyAzure" : {"red":"1",green:"Зеленый"}, ChevroletCorvette : {black:"Черный",blue:"Синий"}, FerrariEnzo : {green:"Зеленый",black:"Черный",yellow:"Желтый"} } Мне надо вместо этого массива сюда заганять переменныю ПХП! Делаю так $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); $arrrr = json_encode($arr); и собственно вопрос КАК сделать var colorsArray = $arrrr;
Не он про другое Добавлено спустя 3 минуты 52 секунды: Код (PHP): echo "<script> var colorsArray = $arrrr;</script>";
Код (Text): <?php header('Content-Type: text/html; charset=utf-8'); $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); $arrrr = json_encode($arr); ?> <head> <title>Связанные списки</title> <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray = echo "<script> var colorsArray = $arrrr;</script>"; 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"; } дальше ХТМЛ Добавлено спустя 2 минуты 48 секунд: igordata не выходить !!!! сломал голову вроде простая задача а чегото ну не как!!!!!
immortal.1986, конечно не выходит. Вы хоть сами посмотрите, чего нарисовали ))) Вот так должно сработать Код (Text): <?php header('Content-Type: text/html; charset=utf-8'); $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); $arrrr = json_encode($arr); ?> <head> <title>Связанные списки</title> <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray = <?php echo $arrrr; ?>; 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"; } А всё от того, что лень почитать про php хоть немного... Ёлки, ведь из поста в пост людям приходится самые азы объяснять. При этом приходят с реальными проектами...
ддаа!!! спасибо за помощь! но не работает азы то мы знааем! только вот не работает! Добавлено спустя 1 минуту 12 секунд: не знаю что и делать! вот ВЕСЬ код! Код (Text): <?php header('Content-Type: text/html; charset=utf-8'); $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); echo json_encode($arr); ?> <head> <title>Связанные списки</title> <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray = echo "<script> var colorsArray = $arrrr;</script>"; var toneArray = { red : {red:"Красны11й",green:"Зел11еный"}, black : {black:"Черны11й",blue:"Син11ий"}, green : {green:"Зелены11й",black:"Че11рный",yellow:"Же11лтый"}, blue : {black:"Черн11ый",blue:"Сини11й"} } var salonsArray = { red : {red:"Кр22асный",green:"Зеле22ный"}, black : {black:"Чер22ный",blue:"Си22ний"}, green : {green:"Зеле22ный",black:"Чер22ный",yellow:"Жел22тый"}, blue : {black:"Черн22ый",blue:"Син22ий"} } // Функция, заполняющая список цветами доступными для выбранной модели. 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"; } function getTones(_this){ var tones = toneArray[_this.value]; var _select = document.getElementById("tones"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in tones){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(tones[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } function getSalons(_this){ var salons = salonsArray[_this.value]; var _select = document.getElementById("salons"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in salons){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(salons[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } </script> </head> <body> <form action="#" method="get"> Модели <select id="models" name="models" onchange="getColors(this)"> <option value="BentleyAzure">Bentley Azure</option> <option value="ChevroletCorvette">Chevrolet Corvette</option> <option value="FerrariEnzo">Ferrari Enzo</option> </select> <br/> Цвета <select id="colors" name="colors" onchange="getTones(this)" ></select> <br/> tone <select id="tones" name="tones" onchange="getSalons(this)"></select> <br/> tonesss <select id="salons" name="salons"></select> <br/> <input type="submit" value="Выбрать" /> </form> </body> Добавлено спустя 56 секунд: как только делаю АЗЫ!!!!var colorsArray = echo "<script> var colorsArray = $arrrr;</script>"; сразу все перестаёт работать! может гдето спатыкаюсь! спасите помогите 8) Добавлено спустя 1 минуту 21 секунду: На вопрос зачем это надо - это часть кода большой программы! в данном случаи запись! вот данные будут прилетать из МУСКУЛА обрабатываться пхп функциями получать данные и в эту ДЖАВУ для выбора!
Азы занете? Это смешно... Ничего вы не знаете, раз пишете такую ерунду. Код (PHP): // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray=<?php echo $arrrr;?>;
ну вот вы опять за своё!!!!!!! азы да азы! Спасибо за помощь! Не работает! Добавлено спустя 1 минуту 30 секунд: мне еще на разных форумах типо ниче вы не знаете надо вот так Варианты: var colorsArray="<?php echo $arrrr;?>"; var colorsArray=["<?php echo $arrrr;?>"]; ксатет тоже не работает! Добавлено спустя 49 секунд: тут вопрос интересный! надо пробавать! а гуглить и сам умеею!
Так, откройте ваш сайт в хроме, там есть консоль (Ctrl+Shift+J). Или в файрбаге в firefox, но там я вам не подсказчик - пользуюсь редко. Раз не работает, в консоли должно быть сообщение об ошибке. Только с моим кодом, пожалуйста, не со своим, ваш вообще бред страшенный, уж извините И ещё покажите, как в браузере этот фрагмент сгенерился html-кода. Понятнее будет.
ага и че? 8) Добавлено спустя 1 минуту 28 секунд: блин да нету ошибки...... есть поля формы! и увсе...... нету начала!!! тоесть этого массива. Добавлено спустя 1 минуту 22 секунды: Код (Text): <?php header('Content-Type: text/html; charset=utf-8'); $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); $arrrr = json_encode($arr); ?> <head> <title>Связанные списки</title> <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray='<?php echo $arrrr;?>'; var toneArray = { red : {red:"Красны11й",green:"Зел11еный"}, black : {black:"Черны11й",blue:"Син11ий"}, green : {green:"Зелены11й",black:"Че11рный",yellow:"Же11лтый"}, blue : {black:"Черн11ый",blue:"Сини11й"} } var salonsArray = { red : {red:"Кр22асный",green:"Зеле22ный"}, black : {black:"Чер22ный",blue:"Си22ний"}, green : {green:"Зеле22ный",black:"Чер22ный",yellow:"Жел22тый"}, blue : {black:"Черн22ый",blue:"Син22ий"} } // Функция, заполняющая список цветами доступными для выбранной модели. 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"; } function getTones(_this){ var tones = toneArray[_this.value]; var _select = document.getElementById("tones"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in tones){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(tones[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } function getSalons(_this){ var salons = salonsArray[_this.value]; var _select = document.getElementById("salons"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in salons){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(salons[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } </script> </head> <body> <form action="#" method="get"> Выберите страну <select id="models" name="models" onchange="getColors(this)"> <option value="BentleyAzure">Bentley Azure</option> <option value="ChevroletCorvette">Chevrolet Corvette</option> <option value="FerrariEnzo">Ferrari Enzo</option> </select> <br/> Выберите обл. <select id="colors" name="colors" onchange="getTones(this)" ></select> <br/> Выберите город <select id="tones" name="tones" onchange="getSalons(this)"></select> <br/> Выберите салон <select id="salons" name="salons"></select> <br/> <input type="submit" value="Выбрать" /> </form> </body> Добавлено спустя 1 минуту 13 секунд: если вместо var colorsArray='<?php echo $arrrr;?>'; тупарём прописать массив var colorsArray = { BentleyAzure : {"red":"1",green:"Зеленый"}, ChevroletCorvette : {black:"Черный",blue:"Синий"}, FerrariEnzo : {green:"Зеленый",black:"Черный",yellow:"Желтый"} } то все ОКИДОКИ
В консоли нет ошибки? Быть не может. JavaScript бы заругался, если бы я вам неверно подсказал. Вы на локале делаете, или урл уже есть и можно посмотреть? Может вы вкладку консоли не открыли? И одинарные кавычки - это вы придумали, я вам их не рисовал.
на локальки денвер Добавлено спустя 1 минуту 36 секунд: АААААААААААААААААААААААААААА ВСЕМ СПАСИБО!!!!! заработало
ОК. Откройте свой сайт (ещё раз, с моим кодом!), нажмите ctrl+u, и скопируйте весь html куда нибудь в pastebin.com, дайте ссылку. Сюда копировать не надо - хрен прочтёшь. Там видно будет, что у вас не так. Если что, я за вас в консоль браузера посмотрю ))
Ну да писать такую хуйню и усираться, что я бог азов, не прочитав не разу мануал. БРЕД! Далее... даже не включили ошибки и предупреждения. Сразу же об этом: Код (PHP): $arr = array('BentleyAzure' => array(red=>"1",green=>"2"), 'ChevroletCorvette' =>array(black=>"12",blue=>"21"), 'FerrariEnzo' => array(green=>"121",black=>"123",yellow=>"321")); Внимательно посмотрите как вы пишите ключи во вложенных массивах. После чего я просто не уверен, что вы вообще соображаете, что будет. Notice: Use of undefined constant red - assumed 'red' Далее... Сделаем обработку: Код (PHP): <?php error_reporting(E_ALL); header('Content-Type:text/html;charset=utf-8'); $json=array( 'BentleyAzure'=>array( 'red'=>'1', 'green'=>'2' ), 'ChevroletCorvette'=>array( 'black'=>'12', 'blue'=>'21' ), 'FerrariEnzo'=>array( 'green'=>'121', 'black'=>'123', 'yellow'=>'321' ) ); $json=json_encode($json); ?> <head> <title>Связанные списки</title> <script type="text/javascript"> // Данные, как бы из базы, сформированные на стороне сервера. // Обычно находятся в подключаемом JavaScript файле. var colorsArray=<?php echo $json; ?>; var toneArray = { red : {red:"Красны11й",green:"Зел11еный"}, black : {black:"Черны11й",blue:"Син11ий"}, green : {green:"Зелены11й",black:"Че11рный",yellow:"Же11лтый"}, blue : {black:"Черн11ый",blue:"Сини11й"} } var salonsArray = { red : {red:"Кр22асный",green:"Зеле22ный"}, black : {black:"Чер22ный",blue:"Си22ний"}, green : {green:"Зеле22ный",black:"Чер22ный",yellow:"Жел22тый"}, blue : {black:"Черн22ый",blue:"Син22ий"} } // Функция, заполняющая список цветами доступными для выбранной модели. function getColors(_this){ var colors = colorsArray[_this.value]; var _select = document.getElementById("colors"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in colors){ // Добавляем доступные цвета. console.log(i+'==='+colors[i]); 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"; } function getTones(_this){ var tones = toneArray[_this.value]; var _select = document.getElementById("tones"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in tones){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(tones[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } function getSalons(_this){ var salons = salonsArray[_this.value]; var _select = document.getElementById("salons"); _select.innerHTML = ""; // Удаляем всех потомков. for(var i in salons){ // Добавляем доступные цвета. var option = document.createElement("option"); var optionText = document.createTextNode(salons[i]); option.appendChild(optionText); option.setAttribute("value",i); _select.appendChild(option); } // Делаем список цветов видимым. _select.style.display="inline"; } </script> </head> <body> <form action="#" method="get"> Модели <select id="models" name="models" onchange="getColors(this)"> <option value="BentleyAzure">Bentley Azure</option> <option value="ChevroletCorvette">Chevrolet Corvette</option> <option value="FerrariEnzo">Ferrari Enzo</option> </select> <br/> Цвета <select id="colors" name="colors" onchange="getTones(this)" ></select> <br/> tone <select id="tones" name="tones" onchange="getSalons(this)"></select> <br/> tonesss <select id="salons" name="salons"></select> <br/> <input type="submit" value="Выбрать" /> </form> </body> Меняется селект цвета, при выборе, после загрузки страницы еще нужно, чтобы автоматов смотрело выбранный option и показывало цвета. И т. д. Все изменять не стал.
Агромное спасибо! уже решил!!!! а поповоду ковычек сдесь они не играю роль!(в данном примере) Добавлено спустя 1 минуту 6 секунд: и про кавычки я просто уже експерементировал и с ними и без и то и сё! и наверно уже кинул так! Добавлено спустя 2 минуты 47 секунд: ВСЁ всем ОГРОМЕДНОЕ спасибо!!!! помогли оставить мозг в живих! Повторюсь var colorsArray=<?php echo $arrrr;?>; - работает var colorsArray=<?php echo $arrrr;?> - не работает Почему даже не хочу знать! 8))))
Код (PHP): var colorsArray=<?php echo $json; ?> var toneArray = { red : {red:"Красны11й",green:"Зел11еный"}, black : {black:"Черны11й",blue:"Син11ий"}, green : {green:"Зелены11й",black:"Че11рный",yellow:"Же11лтый"}, blue : {black:"Черн11ый",blue:"Сини11й"} } Вообще просто тут нет видит завершение строки, потому, что обрабатывается другой скрипт без ковычек. Если вы сделаете так: Код (PHP): var colorsArray=<?php echo $json; ?> var toneArray = { red : {red:"Красны11й",green:"Зел11еный"}, black : {black:"Черны11й",blue:"Син11ий"}, green : {green:"Зелены11й",black:"Че11рный",yellow:"Же11лтый"}, blue : {black:"Черн11ый",blue:"Сини11й"} } Работать будет, или если поставить пробел после ?>. РАБОТАТЬ БУДЕТ! Ну лучше сразу завершить скрипт " ; ".
Эксперемент: Код (PHP): <?php error_reporting(E_ALL); header('Content-Type:text/html;charset=utf-8'); $json=array( 'BentleyAzure'=>array( 'red'=>'1', 'green'=>'2' ), 'ChevroletCorvette'=>array( 'black'=>'12', 'blue'=>'21' ), 'FerrariEnzo'=>array( 'green'=>'121', 'black'=>'123', 'yellow'=>'321' ) ); $json=json_encode($json); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Связанные списки</title> <script type="text/javascript"> (function(window,undefined) { this.colorsArray=<?php echo $json; ?>; this.getClass=function(className) { var arrayTags=document.getElementsByTagName('*'); for(var i in arrayTags) { if(arrayTags[i].className===className) { return arrayTags[i]; } } return undefined; }; this.getId=function(id) { if('#'===id.charAt(0)) { id=id.substring(1); } return document.getElementById(id); }; this.onload=function(callback) { if(this.type(callback,'function')) { if(window.addEventListener) { window.addEventListener('load',callback,false) } else if(window.attachEvent) { window.attachEvent('onload',callback) } else { window.onload=callback; } } }; this.type=function(variable,isType,bool) { bool=bool || false; if('undefined'===typeof isType) { return'undefined'!==typeof variable; } else if('array'===isType) { return this.isArray(variable); } else { return(!bool || this.type(variable)) && !this.isArray(variable) && isType===typeof variable; } }; this.isArray=function(array) { return array instanceof Array; }; this.select=function(id,unset) { if(this.type(id,'string',true)) { var select=this.getId(id); if(this.type(unset,'boolean',true) && true===unset) { select.innerHTML=''; } return this.getId(id); } }; this.selectOption=function(select,number) { if(this.type(select,'object',true)) { return select.options[number]; } }; this.getColors=function(option){ var colorsArray=this.colorsArray[option.value], select=this.select('colors',true); for(var i in colorsArray) { var option=document.createElement('option'); option.value=i; option.innerHTML=colorsArray[i]; select.appendChild(option); } }; })(window); onload(function() { var models=select('models'), option=selectOption(models,0); if(option.value) { getColors(option); } models.onchange=function() { getColors(selectOption(this,this.selectedIndex)); }; }); </script> </head> <body> <form id="form1" method="get"> Модели <select id="models" name="models"> <option value="BentleyAzure">Bentley Azure</option> <option value="ChevroletCorvette">Chevrolet Corvette</option> <option value="FerrariEnzo">Ferrari Enzo</option> </select> <br> Цвета <select id="colors" name="colors"></select> <br> <br> <input type="submit" value="Выбрать"> </form> </body> Продолжить бы не мешало бы =)))