Создаю динамически списки, значения списка вытягиваются из MySQL. В Opera 9.63 все работает нормально - списки подгружаются, а в IE 7 не работает - выдает ошибку: Код (Text): Не удается отобразить страницу XML Не удается просмотреть ввод XML с использованием списка стилей . Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее. -------------------------------------------------------------------------------- Указанная кодировка не поддерживается. Ошибка при обработке ресурса ''http://localhost/obyava/scripts/showsubcat.php''. Ст... <?xml version="1.0" encoding="utf8" standalone="yes"?><response><options><![CDATA[<option value="0"&... Скрипт создания значений списка следующий: PHP: <?php // Если выбрано значение первого списка - формируем второй список if (!isset($_GET['subcategory'])) { $cat=$_GET['category']; require('connecttomysql.php'); $sql="SELECT * FROM subcat WHERE cat_id=".$cat; $result=mysql_query($sql, $con); $secondOptions = '<![CDATA['; $secondOptions = $secondOptions.'<option value="0">Выберите</option>'."\n"; while ($row = mysql_fetch_array($result)) { $secondOptions = $secondOptions.'<option value="'.$row['name'].'">'.$row['alias'].'</option>'."\n"; } mysql_close($con); $secondOptions = $secondOptions.']]>'; $response = '<?xml version="1.0" encoding="utf8" standalone="yes"?>'.'<response>'.'<options>'.$secondOptions.'</options>'.'</response>'; } //header('Content-Type: text/xml'); echo $response; ?> На сколько я понимаю, проблема в кодировке. Как исправить ошибку?
mb_internal_encoding('UTF-8'); - в начале после установки соединения с бд, но перед запросом mysql_query("set character set utf8"); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); альтернатива PHP: <?php if($_SERVER['HTTP_USER_AGENT']) == 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2)' { echo 'Скачайте нормальный браузер и избавтесь от этого обозревателя интернета, недостойного носить гордое имя Браузер'; exit(); } ?>
Ясно. С этим разобрался - такой ошибки больше нет, но есть другая! Т.е. список все равно не появляется. Вот код: Код (Text): function makeList() { // только при состоянии "complete" if (request.readyState == 4) { // для статуса "OK" if (request.status == 200) { responseXml = request.responseXML; xmlDoc=responseXml.documentElement; options=xmlDoc.getElementsByTagName("options")[0].firstChild.data; document.getElementById("subcategory").innerHTML=options; } else alert("Не удалось получить данные от сервера:\n"+request.statusText); } } На строке options=xmlDoc.getElementsByTagName("options")[0].firstChild.data; похоже все накрывается. Что не так?
Sergey89 курите маны батенька. в sql UTF-8 записывается как utf8, KOI8-R - koi8r и т.д. собственно http://www.st-host.ru/help/index.php?media=print&id_article=14
Спасибо. Поржал. Ну и заодно http://www.php.ru/forum/viewtopic.php?t=10103 чтобы вы не чувствовали себя слишком умным.
а то что надо хоть немного думать, прежде чем что-то говорить. здесь речь не о том, как записывается кодировка в MySQL, здесь речь о не верно записанной кодировке в XML.