PDA

Просмотр полной версии : "MySQL -> PHP -> XML -> Flash" не выводит html теги


Sliph
18.06.2008, 19:08
Вообщем ситуация такова: из базы MySql, php делает выборку, затем формирует xml который вызываеться в флеш. Все работает отлично, но...
когда в базе хоть в одном поле появляеться html-тег оно не выводиться.

Собственно сам пхп:

<?php
$hostname_lc = "localhost";
$database_lc = "flash-php";
$username_lc = "root";
$password_lc = "";
$lc = mysql_pconnect($hostname_lc, $username_lc, $password_lc) or trigger_error(mysql_error(),E_USER_ERROR);

mysql_select_db($database_lc, $lc);

$query_rc = "SELECT * FROM lexma_news";
$rc = mysql_query($query_rc, $lc) or die(mysql_error());
$row_rc = mysql_fetch_assoc($rc);

$totalRows_rc = mysql_num_rows($rc);
$header = iconv('', 'UTF-8', ".$row_rc[header].");
$news = iconv('', 'UTF-8', ".$row_rc[news].");
echo '<?xml version="1.0" encoding="utf-8"?>';
echo "\n";
echo '<news>';
echo "\n";

do {
echo '<news_id id="'.$row_rc['id'].'">';
echo "\n";
echo '<date>'.$row_rc['date'].'</date>';
echo "\n";

echo '<header>'.iconv( '', 'UTF-8',$row_rc['header']).'</header>';

echo "\n";
echo '<main>'.iconv( '', 'UTF-8',$row_rc['news']).'</main>';
echo "\n";
echo '<link>'.$row_rc['link'].'</link>';
echo "\n";
echo '</news_id>';
echo "\n";
} while ($row_rc = mysql_fetch_assoc($rc));
echo '</news>';

mysql_free_result($rc);
?>

и AS:
var outxml:XML = new XML();
outxml.ignoreWhite = true;
outxml.onLoad = function(success:Boolean) {

if (success) {
var numentr = this.firstChild.childNodes.length;


for (var i = 0; i<numentr; i++) {


var xmloutput:XMLNode = this.firstChild.childNodes[i].childNodes;

numid = this.firstChild.childNodes[i].attributes["id"];
var date_strng:String = xmloutput[0].firstChild.nodeValue;
var header_strng:String = xmloutput[1].firstChild.nodeValue;
var news_strng:String = xmloutput[2].firstChild.nodeValue;
var link_strng:String = xmloutput[3].firstChild.nodeValue;


var output_strng:String = "<font color='#FFFFFF'><p>";
output_strng += "<span><b>"+date_strng+".<a href='"+link_strng+"'>"+header_strng+"</a><b></span><br>";
output_strng += ""+news_strng+"<br>";
output_strng += "</p></font>";
txtoutput.htmlText += output_strng +"<br>";
}
} else {
trace("error loading XML");
}
};
outxml.load("http://test1.ru/index.php");


Делается все в Flash CS3, но AS 2.0
Помогите что делать? Пробовал вставлять CDATA не помогло, може не так вставил?


...
output_strng += "<![CDATA["+news_strng+"]]><br>";
...


Не бейте, я только лиш начал осваивать XML и Flash.

P.s.: это новостная лента, поля в таблице базы: id , header , news , link , date

iNils
18.06.2008, 19:22
Наберите в адресной строке браузера http://test1.ru/index.php и посмотрите, что загрузится.

Sliph
18.06.2008, 19:32
Наберите в адресной строке браузера http://test1.ru/index.php и посмотрите, что загрузится.

Проверял. Очень даже все хорошо выводит. Проблема в AS.

iNils
18.06.2008, 19:35
Выложите пример сгененрированного xml

Sliph
18.06.2008, 19:45
Выложите пример сгененрированного xml

<?xml version="1.0" encoding="utf-8"?>
<news>
<news_id id="1">
<date>0000-00-00</date>
<header>работает</header>
<main>workining</main>
<link>zadrot.ru</link>
</news_id>
</news>

iNils
18.06.2008, 20:00
И где там cdata?

Sliph
18.06.2008, 20:07
И где там cdata?

CDATA я вставляю в AS так:


...
output_strng += "<![CDATA["+news_strng+"]]><br>";
...


запускаю эму xml типа:


<?xml version="1.0" encoding="utf-8"?>
<news>
<news_id id="1">
<date>0000-00-00</date>
<header><b>работает</b></header>
<main>workining</main>
<link>zadrot.ru</link>
</news_id>
</news>


Поле пропадает (в flash не выводиться, даже без CDATA)

iNils
18.06.2008, 20:16
output_strng это String и причем тут MySQL, PHP и XML мне не понятно. CDATA используется в xml, чтобы флеш не парсил нужные теги.
И чтобы в текстовое поле с включенным html вывести <b>123</b>, а не 123, надо написать &lt;b&qt;123&lt;/b&qt;

Sliph
19.06.2008, 13:29
output_strng это String и причем тут MySQL, PHP и XML мне не понятно. CDATA используется в xml, чтобы флеш не парсил нужные теги.
И чтобы в текстовое поле с включенным html вывести <b>123</b>, а не 123, надо написать &lt;b&qt;123&lt;/b&qt;

Йоклмн, а я думаю че CDATA не пашет, я его чет в AS сую. Просто только начал изучать XML + Flash поэтому немного путаю. СПАСИБО ОГРОМНОЕ.

P.s.: &lt;b&qt; очень даже хорошо, но как показала практика работает даже просто <b>