На данный момент он в UTF-8 мне нужно перекодировать на ср1251.
Пробовал так:
$city['0'] = iconv('UTF-8','CP1251',$city['0']);
так:
$city = iconv('UTF-8','CP1251',$city);
В этом случаи вообще денвер дает ошибку:
Warning: iconv() expects parameter 3 to be string, array given in W:\home\chech-net.ru\www\index.php on line 93
Спустя 2 минуты, 7 секунд (27.09.2011 - 17:57) inpost написал(а):
Создай функцию, её отправляй в рекурсию. Вот пример на функции trim:
function trimAll($data)
{
if(is_array($data))
$data = array_map("trimAll", $data);
else
$data = trim($data);
return $data;
}
Спустя 2 минуты, 26 секунд (27.09.2011 - 18:00) Nurmaga написал(а):
Если я сделал правильно:
то ничего не изменилось..
function trimAll($city)
{
if(is_array($city))
$city = array_map("trimAll", $city);
else
$city = iconv('UTF-8','CP1251',$city);
return $city;
}
то ничего не изменилось..
Спустя 6 минут, 2 секунды (27.09.2011 - 18:06) Игорь_Vasinsky написал(а):
array_map() же позволяет применить функцию ко всем элементам массива.
Спустя 1 минута, 14 секунд (27.09.2011 - 18:07) Игорь_Vasinsky написал(а):
Не CP-1251, а windows-1251
Спустя 1 минута, 12 секунд (27.09.2011 - 18:08) inpost написал(а):
foreach($array as $k=>$v)
$array[$k] = iconv($v);
- это если простой массив.
Спустя 1 минута, 40 секунд (27.09.2011 - 18:10) inpost написал(а):
Игорь_Vasinsky
не путай человека, cp1251 правильно!
Nurmaga
Может тебе в обратном порядке надо?
не путай человека, cp1251 правильно!
Nurmaga
Может тебе в обратном порядке надо?
Спустя 1 минута, 44 секунды (27.09.2011 - 18:12) Игорь_Vasinsky написал(а):
я считал что utf8 и cp1251 - это в SQL, а в php utf-8 и windows-1251, не так?
Спустя 1 минута, 18 секунд (27.09.2011 - 18:13) Nurmaga написал(а):
нет, не простой массив.
И тд.
Города выводятся нормально, потому что еще одну переменную в перекодировал так:
$city = array (
'Москва и Московская обл.' => array (
0 => 'Москва',
1 => 'Абрамцево',
2 => 'Алабино',
3 => 'Апрелевка',
4 => 'Архангельское',
5 => 'Ашитково',
6 => 'Байконур',
7 => 'Бакшеево',
8 => 'Балашиха',
9 => 'Барыбино',
10 => 'Белозёрский',
11 => 'Белоомут',
12 => 'Белые Столбы',
13 => 'Бородино (Московская обл.)',
14 => 'Бронницы',
15 => 'Быково (Московская обл.)',
16 => 'Валуево',
17 => 'Вербилки',
18 => 'Верея',
19 => 'Видное',
20 => 'Внуково',
21 => 'Вождь Пролетариата',
22 => 'Волоколамск',
23 => 'Вороново',
24 => 'Воскресенск',
25 => 'Восточный',
26 => 'Востряково',
27 => 'Высоковск',
28 => 'Голицыно (Московская обл.)',
29 => 'Деденево',
30 => 'Дедовск',
31 => 'Дзержинский',
32 => 'Дмитров',
33 => 'Долгопрудный',
34 => 'Домодедово',
35 => 'Дорохово',
36 => 'Дрезна',
37 => 'Дубки',
38 => 'Дубна',
39 => 'Егорьевск',
40 => 'Железнодорожный (Московск.)',
41 => 'Жилево',
42 => 'Жуковка',
43 => 'Жуковский',
44 => 'Загорск',
45 => 'Загорянский',
46 => 'Запрудная',
47 => 'Зарайск',
48 => 'Звенигород',
49 => 'Зеленоград',
50 => 'Ивантеевка (Московская обл.)',
51 => 'Икша',
52 => 'Ильинский (Московская обл.)',
53 => 'Истра',
54 => 'Калининец',
55 => 'Кашира',
56 => 'Керва',
57 => 'Климовск',
58 => 'Клин',
59 => 'Клязьма',
60 => 'Кожино',
61 => 'Кокошкино',
62 => 'Коломна',
63 => 'Колюбакино',
64 => 'Королев',
65 => 'Косино',
66 => 'Котельники',
67 => 'Красково',
68 => 'Красноармейск (Московская обл.)',
69 => 'Красногорск',
70 => 'Краснозаводск',
71 => 'Краснознаменск (Московская обл.)',
72 => 'Красный Ткач',
73 => 'Крюково',
74 => 'Кубинка',
75 => 'Купавна',
76 => 'Куровское',
77 => 'Лесной Городок',
78 => 'Ликино-Дулево',
79 => 'Лобня',
80 => 'Лопатинский',
81 => 'Лосино-Петровский',
82 => 'Лотошино',
83 => 'Лукино',
84 => 'Луховицы',
85 => 'Лыткарино',
86 => 'Львовский',
87 => 'Люберцы',
88 => 'Малаховка',
89 => 'Михайловское',
90 => 'Михнево',
91 => 'Можайск',
92 => 'Монино',
93 => 'Московский',
94 => 'Муханово',
95 => 'Мытищи',
96 => 'Нарофоминск',
97 => 'Нахабино',
98 => 'Некрасовка',
99 => 'Немчиновка',
100 => 'Новобратцевский',
101 => 'Новоподрезково',
102 => 'Ногинск',
103 => 'Обухово',
104 => 'Одинцово',
105 => 'Ожерелье',
106 => 'Озеры',
107 => 'Октябрьский (Московская обл.)',
108 => 'Опалиха',
109 => 'Орехово-Зуево',
110 => 'Павловский Посад',
111 => 'Первомайский (Московская обл.)',
112 => 'Пески (Московская обл.)',
113 => 'Пироговский',
114 => 'Подольск',
115 => 'Полушкино',
116 => 'Правдинский',
117 => 'Привокзальный',
118 => 'Пролетарский',
119 => 'Протвино (Московская обл.)',
120 => 'Пушкино',
121 => 'Пущино',
122 => 'Раменское',
123 => 'Реутов',
124 => 'Решетниково',
125 => 'Родники (Московская обл.)',
126 => 'Рошаль',
127 => 'Рублево',
128 => 'Руза',
129 => 'Салтыковка',
130 => 'Северный',
131 => 'Сергиев Посад',
132 => 'Серебряные Пруды',
133 => 'Серпухов',
134 => 'Солнечногорск',
135 => 'Солнцево',
136 => 'Софрино',
137 => 'Старая Купавна',
138 => 'Старбеево',
139 => 'Ступино',
140 => 'Сходня',
141 => 'Талдом',
142 => 'Текстильщик',
143 => 'Темпы',
144 => 'Томилино',
145 => 'Троицк',
146 => 'Туголесский Бор',
147 => 'Тучково',
148 => 'Уваровка',
149 => 'Удельная',
150 => 'Успенское',
151 => 'Фирсановка',
152 => 'Фрязино',
153 => 'Фряново',
154 => 'Химки',
155 => 'Хотьково',
156 => 'Черкизово',
157 => 'Черноголовка',
158 => 'Черусти',
159 => 'Чехов',
160 => 'Шарапово',
161 => 'Шатура',
162 => 'Шатурторф',
163 => 'Шаховская',
164 => 'Шереметьевский',
165 => 'Щелково',
166 => 'Щербинка',
167 => 'Электрогорск',
168 => 'Электросталь',
169 => 'Электроугли',
170 => 'Юбилейный (Московская обл.)',
171 => 'Яхрома',
),
'Санкт-Петербург и область' => array (
0 => 'Санкт-Петербург',
1 => 'Александровская',
2 => 'Бокситогорск',
И тд.
Города выводятся нормально, потому что еще одну переменную в перекодировал так:
$region = iconv('UTF-8','CP1251',$_GET['region']);
Спустя 2 минуты, 37 секунд (27.09.2011 - 18:15) inpost написал(а):
Nurmaga
Кроме того, что ты написал функцию, ты её хоть вызвал?
Кроме того, что ты написал функцию, ты её хоть вызвал?
Спустя 2 минуты, 22 секунды (27.09.2011 - 18:18) Winston написал(а):
function myIconv($array)
{
if(is_array($array))
return array_map('myIconv', $array);
else
return iconv('UTF-8', 'WINDOWS-1251', $array);
}
echo myIconv($city);
И дело в шляпе :)
Спустя 7 минут, 36 секунд (27.09.2011 - 18:25) Nurmaga написал(а):
! |
Winston |
Спустя 9 минут, 22 секунды (27.09.2011 - 18:35) Nurmaga написал(а):
Могли бы отредактировать, чем удалить.
Я вызвал функцию как Вы сказали, но ничего не вышло. может я делаю, что то не так?
function myIconv($city)
{
if(is_array($city))
return array_map('myIconv', $city);
else
return iconv('UTF-8', 'CP1251', $city);
}
echo myIconv($city);
Я вызвал функцию как Вы сказали, но ничего не вышло. может я делаю, что то не так?
Спустя 1 минута, 6 секунд (27.09.2011 - 18:36) Игорь_Vasinsky написал(а):
А в чём портянки?
..вцепились модер с админом
Nurmaga
Возращает в том же виде?
..вцепились модер с админом
Nurmaga
Возращает в том же виде?
Спустя 1 минута, 29 секунд (27.09.2011 - 18:37) Nurmaga написал(а):
Цитата (Игорь_Vasinsky @ 27.09.2011 - 15:36) |
Nurmaga Возращает в том же виде? |
да
Спустя 3 минуты, 39 секунд (27.09.2011 - 18:41) Игорь_Vasinsky написал(а):
ты пробывал на windows-1251 изменить?
Спустя 1 минута, 21 секунда (27.09.2011 - 18:42) inpost написал(а):
Покажи функцию, покажи, как ты её вызываешь, и покажи, как ты выводишь данные.
Спустя 3 минуты, 58 секунд (27.09.2011 - 18:46) Nurmaga написал(а):
<?php
require_once('city.php'); // подключаем список с городами
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
$region = iconv('UTF-8','CP1251',$_GET['region']);
// возвращаем список городов
if ($action == 'getCity')
{
if (isset($city[$region]))
{
echo json_encode($city[$region]); // возвраащем данные в JSON формате;
}
else
{
echo json_encode(array('Выберите область'));
}
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Курс по Javascript</title>
<link href="css/mystyle.css" rel="stylesheet" type="text/css" />
<link href="css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script src="js/allscripts.js" type="text/javascript"></script>
<script type="text/javascript" src='js/comm.js'></script>
<script type="text/javascript" src='js/JsHttpRequest.js'></script>
<script type="text/javascript">
// <![CDATA[
function loadCity(select)
{
var citySelect = $('select[name="city"]');
citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
// послыаем AJAX запрос, который вернёт список городов для выбранной области
$.getJSON('index.php', {action:'getCity', region:select.value}, function(cityList){
citySelect.html(''); // очищаем список городов
// заполняем список городов новыми пришедшими данными
$.each(cityList, function(i){
citySelect.append('<option value="' + i + '">' + this + '</option>');
});
citySelect.removeAttr('disabled'); // делаем список городов активным
});
}
// ]]>
</script>
</head>
<body>
<table width="950" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<? include("blocks/block_left.php");?>
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include("blocks/block_top.php");?>
</tr>
<tr>
<td class="block_center">
<?
function myIconv($city)
{
if(is_array($city))
return array_map('myIconv', $city);
else
return iconv('UTF-8', 'CP1251', $city);
}
?>
<form action="index.php" method="post">
<select name="region" onchange="loadCity(this)">
<option></option>
<?php
// заполняем список областей
foreach (myIconv($city) as $region => $cityList)
{
echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
}
?>
</select>
<select name="city" disabled="disabled">
<option>Выберите область</option>
</select>
<input type="submit" value="отправить" />
</form>
</td>
</tr>
</table></td>
</tr>
<tr>
<? include("blocks/block_footer.php");?>
</tr>
</table>
</body>
</html>
Спустя 58 секунд (27.09.2011 - 18:47) Nurmaga написал(а):
Вызвал так:
<?php
// заполняем список областей
foreach (myIconv($city) as $region => $cityList)
{
echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
}
?>
<?php
// заполняем список областей
foreach (myIconv($city) as $region => $cityList)
{
echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
}
?>
Спустя 2 минуты, 10 секунд (27.09.2011 - 18:49) Nurmaga написал(а):
windows-1251 не меняет ничего.
Спустя 2 минуты, 32 секунды (27.09.2011 - 18:52) Игорь_Vasinsky написал(а):
может кодировка у city.php не та?
Спустя 2 минуты, 12 секунд (27.09.2011 - 18:54) Nurmaga написал(а):
Почему тогда с этого файла имена городов выводятся нормально?
Спустя 2 минуты, 8 секунд (27.09.2011 - 18:56) Nurmaga написал(а):
Все номерованные имена выводятся нормально:
Вот эти массивы выводятся крякозабрами:
'Москва и Московская обл.' Санкт-Петербург и область'
$city = array (
'Москва и Московская обл.' => array (
0 => 'Москва',
1 => 'Абрамцево',
2 => 'Алабино',
3 => 'Апрелевка',
4 => 'Архангельское',
5 => 'Ашитково',
6 => 'Байконур',
7 => 'Бакшеево',
8 => 'Балашиха',
9 => 'Барыбино',
10 => 'Белозёрский',
11 => 'Белоомут',
12 => 'Белые Столбы',
),
'Санкт-Петербург и область' => array (
0 => 'Санкт-Петербург',
1 => 'Александровская',
2 => 'Бокситогорск',
3 => 'Большая Ижора',
4 => 'Будогощь',
5 => 'Вознесенье',
6 => 'Волосово',
7 => 'Волхов',
8 => 'Всеволожск',
9 => 'Выборг',
10 => 'Вырица',
11 => 'Высоцк',
12 => 'Гатчина',
61 => 'Шебалино',
62 => 'Шелаболиха',
63 => 'Шипуново',
),
Вот эти массивы выводятся крякозабрами:
'Москва и Московская обл.' Санкт-Петербург и область'
Спустя 3 минуты, 6 секунд (27.09.2011 - 18:59) Winston написал(а):
Цитата (Nurmaga @ 27.09.2011 - 18:35) |
Могли бы отредактировать, чем удалить |
Форум старый, код подсвечивается с помощью регулярных выражений, а как известно это довольно ресурсоемкие операции потому им не хватает памяти, чтобы подсветить такой офигительно-большой участок кода, и форум из-за этого не дает отредактировать пост.
Игорь_Vasinsky
Цитата (Игорь_Vasinsky @ 27.09.2011 - 18:36) |
А в чём портянки? ..вцепились модер с админом |
М | П 4.6 ! |
Winston
Спустя 3 минуты, 5 секунд (27.09.2011 - 19:02) Winston написал(а):
Nurmaga
Цитата (Nurmaga @ 27.09.2011 - 18:47) |
Вызвал так |
Не правильно
<?php
// заполняем список областей
$city = myIconv($city);
foreach ($city as $region => $cityList)
{
echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
}
?>
И т.к. у тебя двумерный массив, то здесь может потребоваться вложенный foreach, зависит от твоих потребностей...
Спустя 5 минут, 15 секунд (27.09.2011 - 19:08) Nurmaga написал(а):
Цитата |
И т.к. у тебя двумерный массив, то здесь может потребоваться вложенный foreach |
Поможете писать?
так как это ничего не дало...(
Спустя 20 минут, 36 секунд (27.09.2011 - 19:28) Nurmaga написал(а):
Ни уже ли никто(
Спустя 1 минута, 9 секунд (27.09.2011 - 19:29) inpost написал(а):
Сначала print_r($city) сделай. Убедись, что выводятся крокозябры!
Потом примени функцию.
Потом примени функцию.
Спустя 3 минуты, 56 секунд (27.09.2011 - 19:33) Nurmaga написал(а):
До и после и без функция, print_r($city); ничего не выводит.
Спустя 3 минуты, 5 секунд (27.09.2011 - 19:37) inpost написал(а):
вообще-то print_r должен вывести весь массив Если таков имеется.
Спустя 4 минуты, 10 секунд (27.09.2011 - 19:41) Nurmaga написал(а):
$city $region $cityList эти переменные ничего не выводят.
Хотя на страничке в списке крокозябры...
Хотя на страничке в списке крокозябры...
Спустя 3 минуты (27.09.2011 - 19:44) Nurmaga написал(а):
Спустя 3 минуты, 58 секунд (27.09.2011 - 19:48) Winston написал(а):
Ну блин, напиши тогда так
А вверху файла вот так напиши
foreach ($city as $region => $cityList)
{
echo '<option value="' . iconv('UTF-8', 'WINDOWS-1251', $region) . '">' . iconv('UTF-8', 'WINDOWS-1251', $region) . '</option>' . "\n";
}
А вверху файла вот так напиши
header("Content-Type: text/html; charset=windows-1251");
Спустя 1 минута, 52 секунды (27.09.2011 - 19:50) inpost написал(а):
Winston
Ты можешь объяснить, каким образом сегодня уже второй человек не может запустить print_r ? Что-то до этого все с первого раза массив выводить умели... а тут банальную функцию не могут запустить...
Ты можешь объяснить, каким образом сегодня уже второй человек не может запустить print_r ? Что-то до этого все с первого раза массив выводить умели... а тут банальную функцию не могут запустить...
Спустя 3 минуты, 17 секунд (27.09.2011 - 19:53) Nurmaga написал(а):
Winston
Получилось!!!!
Спасибо большое!
inpost
И Вам!
Получилось!!!!
Спасибо большое!
inpost
И Вам!
Спустя 59 секунд (27.09.2011 - 19:54) Winston написал(а):
Свернутый текст
$city = array (
'Москва и Московская обл.' => array (
0 => 'Москва',
1 => 'Абрамцево',
2 => 'Алабино',
3 => 'Апрелевка',
4 => 'Архангельское',
5 => 'Ашитково',
6 => 'Байконур',
7 => 'Бакшеево',
8 => 'Балашиха',
9 => 'Барыбино',
10 => 'Белозёрский',
11 => 'Белоомут',
12 => 'Белые Столбы',
13 => 'Бородино (Московская обл.)',
14 => 'Бронницы',
15 => 'Быково (Московская обл.)',
16 => 'Валуево',
17 => 'Вербилки',
18 => 'Верея',
19 => 'Видное',
20 => 'Внуково',
21 => 'Вождь Пролетариата',
22 => 'Волоколамск',
23 => 'Вороново',
24 => 'Воскресенск',
25 => 'Восточный',
26 => 'Востряково',
27 => 'Высоковск',
28 => 'Голицыно (Московская обл.)',
29 => 'Деденево',
30 => 'Дедовск',
31 => 'Дзержинский',
32 => 'Дмитров',
33 => 'Долгопрудный',
34 => 'Домодедово',
35 => 'Дорохово',
36 => 'Дрезна',
37 => 'Дубки',
38 => 'Дубна',
39 => 'Егорьевск',
40 => 'Железнодорожный (Московск.)',
41 => 'Жилево',
42 => 'Жуковка',
43 => 'Жуковский',
44 => 'Загорск',
45 => 'Загорянский',
46 => 'Запрудная',
47 => 'Зарайск',
48 => 'Звенигород',
49 => 'Зеленоград',
50 => 'Ивантеевка (Московская обл.)',
51 => 'Икша',
52 => 'Ильинский (Московская обл.)',
53 => 'Истра',
54 => 'Калининец',
55 => 'Кашира',
56 => 'Керва',
57 => 'Климовск',
58 => 'Клин',
59 => 'Клязьма',
60 => 'Кожино',
61 => 'Кокошкино',
62 => 'Коломна',
63 => 'Колюбакино',
64 => 'Королев',
65 => 'Косино',
66 => 'Котельники',
67 => 'Красково',
68 => 'Красноармейск (Московская обл.)',
69 => 'Красногорск',
70 => 'Краснозаводск',
71 => 'Краснознаменск (Московская обл.)',
72 => 'Красный Ткач',
73 => 'Крюково',
74 => 'Кубинка',
75 => 'Купавна',
76 => 'Куровское',
77 => 'Лесной Городок',
78 => 'Ликино-Дулево',
79 => 'Лобня',
80 => 'Лопатинский',
81 => 'Лосино-Петровский',
82 => 'Лотошино',
83 => 'Лукино',
84 => 'Луховицы',
85 => 'Лыткарино',
86 => 'Львовский',
87 => 'Люберцы',
88 => 'Малаховка',
89 => 'Михайловское',
90 => 'Михнево',
91 => 'Можайск',
92 => 'Монино',
93 => 'Московский',
94 => 'Муханово',
95 => 'Мытищи',
96 => 'Нарофоминск',
97 => 'Нахабино',
98 => 'Некрасовка',
99 => 'Немчиновка',
100 => 'Новобратцевский',
101 => 'Новоподрезково',
102 => 'Ногинск',
103 => 'Обухово',
104 => 'Одинцово',
105 => 'Ожерелье',
106 => 'Озеры',
107 => 'Октябрьский (Московская обл.)',
108 => 'Опалиха',
109 => 'Орехово-Зуево',
110 => 'Павловский Посад',
111 => 'Первомайский (Московская обл.)',
112 => 'Пески (Московская обл.)',
113 => 'Пироговский',
114 => 'Подольск',
115 => 'Полушкино',
116 => 'Правдинский',
117 => 'Привокзальный',
118 => 'Пролетарский',
119 => 'Протвино (Московская обл.)',
120 => 'Пушкино',
121 => 'Пущино',
122 => 'Раменское',
123 => 'Реутов',
124 => 'Решетниково',
125 => 'Родники (Московская обл.)',
126 => 'Рошаль',
127 => 'Рублево',
128 => 'Руза',
129 => 'Салтыковка',
130 => 'Северный',
131 => 'Сергиев Посад',
132 => 'Серебряные Пруды',
133 => 'Серпухов',
134 => 'Солнечногорск',
135 => 'Солнцево',
136 => 'Софрино',
137 => 'Старая Купавна',
138 => 'Старбеево',
139 => 'Ступино',
140 => 'Сходня',
141 => 'Талдом',
142 => 'Текстильщик',
143 => 'Темпы',
144 => 'Томилино',
145 => 'Троицк',
146 => 'Туголесский Бор',
147 => 'Тучково',
148 => 'Уваровка',
149 => 'Удельная',
150 => 'Успенское',
151 => 'Фирсановка',
152 => 'Фрязино',
153 => 'Фряново',
154 => 'Химки',
155 => 'Хотьково',
156 => 'Черкизово',
157 => 'Черноголовка',
158 => 'Черусти',
159 => 'Чехов',
160 => 'Шарапово',
161 => 'Шатура',
162 => 'Шатурторф',
163 => 'Шаховская',
164 => 'Шереметьевский',
165 => 'Щелково',
166 => 'Щербинка',
167 => 'Электрогорск',
168 => 'Электросталь',
169 => 'Электроугли',
170 => 'Юбилейный (Московская обл.)',
171 => 'Яхрома',
),
'Санкт-Петербург и область' => array (
0 => 'Санкт-Петербург',
1 => 'Александровская',
2 => 'Бокситогорск');
print_r($city);
Nurmaga
Выложи сюда весь исходный код своего файла, только массив обрежь не надо его сюда полностью выкладывать. И код обрами тегами [ php ] [ /php ] а потом, еще обрами тегами [ more ][ /more ]
Спустя 41 секунда (27.09.2011 - 19:54) Winston написал(а):
Nurmaga
Ну ты и даешь
Ну ты и даешь
Спустя 14 минут, 24 секунды (27.09.2011 - 20:09) Nurmaga написал(а):
Свернутый текст
<?php
require_once('city.php'); // подключаем список с городами
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
if (isset($city[$_GET['region']]))
{
echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
}
else
{
echo json_encode(array('Выберите область'));
}
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Курс по Javascript</title>
<link href="css/mystyle.css" rel="stylesheet" type="text/css" />
<link href="css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script src="js/allscripts.js" type="text/javascript"></script>
<script type="text/javascript" src='js/comm.js'></script>
<script type="text/javascript" src='js/JsHttpRequest.js'></script>
<script type="text/javascript">
// <![CDATA[
function loadCity(select)
{
var citySelect = $('select[name="city"]');
citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
// послыаем AJAX запрос, который вернёт список городов для выбранной области
$.getJSON('index.php', {action:'getCity', region:select.value}, function(cityList){
citySelect.html(''); // очищаем список городов
// заполняем список городов новыми пришедшими данными
$.each(cityList, function(i){
citySelect.append('<option value="' + i + '">' + this + '</option>');
});
citySelect.removeAttr('disabled'); // делаем список городов активным
});
}
// ]]>
</script>
</head>
<body>
<table width="950" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<? include("blocks/block_left.php");?>
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include("blocks/block_top.php");?>
</tr>
<tr>
<td class="block_center">
<form action="index.php" method="post">
<select name="region" onchange="loadCity(this)">
<option></option>
<?php
foreach ($city as $region => $cityList) {
echo '<option value="' . iconv('UTF-8', 'WINDOWS-1251', $region) . '">' . iconv('UTF-8', 'WINDOWS-1251', $region) . '</option>' . "\n";
}
?>
</select>
<select name="city" disabled="disabled">
<option>Выберите область</option>
</select>
<input type="hidden" name="action" value="postResult" />
<input type="submit" value="отправить" />
</form>
</td>
</tr>
</table></td>
</tr>
<tr>
<? include("blocks/block_footer.php");?>
</tr>
</table>
</body>
</html>
:)
Спустя 48 минут, 4 секунды (27.09.2011 - 20:57) inpost написал(а):
Мы функцией прогоняли НЕ КЛЮЧИ, а значения.... а ты выводишь ключи...