Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   parsererror ... (https://javascript.ru/forum/misc/9853-parsererror.html)

Arfey 08.06.2010 16:55

parsererror ...
 
Если пишу такой код .. оно не распарсить
echo '<food>'.mysql_result($result,$i,Food).'</food>';


иначе работает .. помогите ..

Gvozd 08.06.2010 17:05

при чем тут вообще JS?
и что это вы за тег изобрели - food?
в HTML нельзя придумывать свои теги

Arfey 08.06.2010 17:06

Нет это PHP запрос зделал и отправляет его в XML
<?php
header('Content-type: application/xml; charset=utf-8'); 
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<response>';
$dbname = 'food_bd'; 
$dbcnx = mysql_connect('127.0.0.1','root','0297');   
mysql_select_db($dbname,$dbcnx); 
$query = "select * from food";
$result = mysql_query($query, $dbcnx);
$n=mysql_num_rows($result);
for($i=0;$i<$n;$i++){
  echo '<show>';
  echo '<food>'.mysql_result($result,$i,Food).'</food>';
  echo '<id>'.mysql_result($result,$i,id).'</id>';
  echo '<dt>'.mysql_result($result,$i,Date).'</dt>';
  echo '</show>'; 
 }
  echo '</response>';
  mysql_close($dbcnx);
?>


а дальше парсим .. и если те строки присуцтвуют то оно не парситься - я мог не правильно записать .. непойму почему не работает ..

Kolyaj 08.06.2010 17:19

Ну так выведите результирующий xml и посмотрите, что там не так. Мы-то откуда знаем?

Gvozd 08.06.2010 17:23

посмотрите в фаербаге, что у вас приходит вместо ожидаемого XML
скорее всего у вас PHP выдает в этом месте ошибку, и поэтому мешает парсингу XML

Научитесь пожалуйста сами минимальному дебагу
как ребенок, ей богу.

Arfey 08.06.2010 17:28

да там чтото есть

Gvozd 08.06.2010 17:32

Цитата:

Сообщение от Arfey
дело в том что все норм .. тока вот parsererror ...

дайте ссылку на ваш скрипт, запущенный на хостинге.
быть такого не может, чтобы он был просто так
Цитата:

Сообщение от Arfey
есть вариант что нада тип строку записывать в XML

а теперь нормально скажите, на русском языке

Arfey 08.06.2010 17:36

echo '<food>'.mysql_result($result,$i,Food).'</food>'; вместо текста тут квадратики они мешают распарсить
подскажите как их переформатировать ...

Gvozd 08.06.2010 17:39

Цитата:

Сообщение от Arfey
вместо текста тут квадратики

квадратики, блин.
вы что с детсада сбежали, что так выражаетесь.
у вас с кодировкой судя по всему проблемы.
перекодировать можно с помощью ф-ции iconv()
конвертировать надо из кодировки, что выдает база, в кодировку, что вам в документе нужна(UTF-8)

Arfey 08.06.2010 17:45

Цитата:

Сообщение от Gvozd (Сообщение 58529)
квадратики, блин.
вы что с детсада сбежали, что так выражаетесь.
у вас с кодировкой судя по всему проблемы.
перекодировать можно с помощью ф-ции iconv()
конвертировать надо из кодировки, что выдает база, в кодировку, что вам в документе нужна(UTF-8)

Перекодировали и в MySql столбец .. и так как выше написали .. терь респондица зато в XML знаки вопроса вместо текста

subzey 08.06.2010 17:50

А Вы в какой кодировке XML отдаете? В какой кодировке хранятся данные. С какой кодировкой подключаетесь к СУБД (SET NAMES)?

Gvozd 08.06.2010 17:51

Цитата:

Сообщение от Arfey
Перекодировали и в MySql столбец

вы саму базу перекодировали, что-ли?
практически уверен, что вы при этом все к чертям потеряли, и поэтому у вас теперь "вопросики".
Либо вы все еще неверно конвертируете данные
Совет:
юзайте везде одну кодировку - utf8
Снесите базу к праотцам, и создайте заново, задав коидоровку utf-8, и сравнение utf_general_ci

Arfey 08.06.2010 17:58

выставил везде тоесть :
в базе
перед записью в XML
и на смой странице

ничего не изменилось =) так знаки вопроса и остались в XML ,

и на странице терь какието квадраты ) ужос

Gvozd 08.06.2010 18:01

дайте угадаю:
phpmyadmin в таблице также квадратики или что-то в таком роде показывает

Arfey 08.06.2010 18:05

Цитата:

Сообщение от Gvozd (Сообщение 58537)
дайте угадаю:
phpmyadmin в таблице также квадратики или что-то в таком роде показывает

неугадали =)

в MySqL Front - показывает русский текст =)

Gvozd 08.06.2010 18:10

ну, приложите тогда дамп своей БД

Arfey 08.06.2010 18:22

Цитата:

Сообщение от Gvozd (Сообщение 58542)
ну, приложите тогда дамп своей БД

секунду... знал бы я как дампы делать ... читать буду)

subzey 08.06.2010 18:41

mysqldump -u<логин> -p<пароль> <имя_базы> > dump.sql

Arfey 09.06.2010 11:41

Цитата:

Сообщение от Gvozd (Сообщение 58542)
ну, приложите тогда дамп своей БД


Arfey 09.06.2010 12:08

Пошло .. я изменил кодировку на 1251 и все послед записи .. записаные на русском уже без знаков вопроса ...

Arfey 09.06.2010 12:10

но 1251 .. я везде ставил и на странице ... и в базе где нашол и в кодировке XML
но при просмотре через MySql - Front вместо руского текста знаки вопроса ...

Skipp 09.06.2010 12:23

Arfey,
Потому что в бд записываются в utf8

DooMer 09.06.2010 12:24

Цитата:

Сообщение от Arfey (Сообщение 58522)
echo '<?xml version="1.0" encoding="utf-8"?>';

Файс с скриптом должен быть в utf-8, + из базы должен приходить utf-8 и тогда все будет работать

Skipp 09.06.2010 12:25

Arfey,
Сделай всё в utf8 и не мучай мозГ:)

Arfey 09.06.2010 12:37

Цитата:

Сообщение от Skipp (Сообщение 58631)
Arfey,
Сделай всё в utf8 и не мучай мозГ:)

а зачем вобще утф8 ? а че не 1251?

Kolyaj 09.06.2010 12:50

Цитата:

Сообщение от Arfey
а зачем вобще утф8 ? а че не 1251?

Ну сделай всё в 1251.

Skipp 09.06.2010 12:50

Arfey,
а ты думаешь в какой кодировке xmlhttprequest передаёт данные? Можно конечно их на приёме декодировать, но проще же всё делать в utf8 и не путаться.

Kolyaj 09.06.2010 12:51

Цитата:

Сообщение от Skipp
а ты думаешь в какой кодировке xmlhttprequest передаёт данные?

В какой ему отдашь, в той и передаёт.

DooMer 09.06.2010 12:54

Цитата:

Сообщение от Arfey (Сообщение 58632)
а зачем вобще утф8 ? а че не 1251?

а зачем тогда эта строка
echo '<?xml version="1.0" encoding="utf-8"?>';
???

Skipp 09.06.2010 12:58

Kolyaj,
ну это если в setRequestHeader(name, value) указать, а так то он передаёт по идее в utf8.

Kolyaj 09.06.2010 13:26

Skipp,
если данные предварительно нужным способом заэскейпить, то на сервер придёт в той кодировке, в которой эскейпили. Без всяких requestHeader.

Skipp 09.06.2010 13:29

Kolyaj,
согласен:)


Часовой пояс GMT +3, время: 20:48.