PDA

Просмотр полной версии : PHP цикл -> HTML таблица -> Flash


Rem0
12.06.2008, 19:31
Итак, есть PHP скрипт script.php:

<?php
mysql_connect($dbhost, $dbuser, $dbpass) or $out = "Ошибка соединения";
mysql_select_db($dbname) or $out = "БД не найдена";

$data=mysql_query("SELECT * FROM characters ORDER BY level DESC LIMIT 100") or die('Не удалось получить данные из базы.');

echo "
<table>
<tr>
<td>№</td>
<td>Ник</td>
<td>Профессия</td>
<td>Общее время</td>
</tr>";


$n=1;
while ($top=mysql_fetch_array($data))
{
$onlinetimeH=round(($top[onlinetime]/60/60)-0.5);

echo "
<tr>
<td>$n</td>
<td>$top[name]</td>
<td>$class[ClassName]</td>
<td>$onlinetimeH</td>
</tr>";

$n++;
}

echo "</table>";

?>


Его результатом является HTML код таблицы...
Нужно эту таблицу запихнуть в текстфилд ... но как известно, флэш не поддерживает подобные HTML тэги: <table>, <td> и т.д
т.е. получается вывести в текстовое поле сам исходный код таблицы, но обрабатывать его флэш естесно не хочет(

var inp = new LoadVars();
inp.load("script.php");
inp.onData = function (data)
{
trace (data);
txt_out = data;
};

Пробовал и через XML, с помощью CDATA - ничего не выходит, результат такой же.

Как это можно реализовать? Во Flash я начинающий, буду признателен за ответ.

Psycho Tiger
12.06.2008, 20:36
Хм... Иван Дембицкий очень хорошо писал про это. (вроде бы он)
Только я никак не могу найти его статью... Вобщем, это статья про создание таблиц из xml файлов. Если найду - отпишусь.

Aisaid
13.06.2008, 14:32
Rem0, здесь где-то была тема про хтмл парсер - класс для вывода более-менее корректного хмтл... поищите

Rem0
13.06.2008, 15:18
Спасибо за советы, сделал значит вот как: PHP генерит приблизительно вот такую таблицу XML:


<table num="#" name="Nickname" level="Level" proff="Class" clan="Clan" battle="PVP" online="Game time">
<t name="Rem2" level="85" proff="Male Soldier" clan="No" battle="0" online="2 hours">
<t name="Rem" level="85" proff="Male Soldier" clan="No" battle="0" online="2 hours">
</table>

я ее обрабатуваю во флэше таким образом:


my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
if (ok) {
F_createTable();
}
};

my_xml.load("top.xml");
F_createTable = function () {

import TextField.StyleSheet;
var my_style:StyleSheet = new StyleSheet();
my_style.setStyle("title", {fontsize:'16px', color:'#006699', fontWeight:'bold', fontFamily:"Tahoma"});
my_style.setStyle("nameTable", {fontsize:'16px', color:'#990000', fontWeight:'bold', fontFamily:"Arial",marginLeft:"10"});
my_style.setStyle("text", {fontsize:'12px', color:'#666666', fontFamily:"Courier",marginLeft:"10"});
_root.createTextField("tf", 1, 10, 10, 630, 680);
with (tf) {
html = true;
multiline = true;
wordWrap = false;
styleSheet = my_style;
htmlText = "<title>Статистика</title><br /><nameTable><textformat tabstops='[30,100,100,100,100,100]' >"+my_xml.childNodes[0].attributes.num+"<tab>"+my_xml.childNodes[0].attributes.name+"<tab>"+my_xml.childNodes[0].attributes.level+"<tab>"+my_xml.childNodes[0].attributes.proff+"<tab>"+my_xml.childNodes[0].attributes.clan+"<tab>"+my_xml.childNodes[0].attributes.battle+"<tab>"+my_xml.childNodes[0].attributes.online+"</textformat></nameTable>";
}

var len = my_xml.childNodes[0].childNodes.length;
for (var i = 0; i<len; i++) {
tf.htmlText += "<text><textformat tabstops='[30,100,100,100,100,100]'>"+(i+1)+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.name+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.level+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.proff+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.clan+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.battle+"<tab>"+my_xml.childNodes[0].childNodes[i].attributes.online+"</textformat></text>";

}
};


Но после 2-ой табуляции флэш не хочет дальшее ее применять. tabstops дальше первой 100 не отображает. Что я не так делаю?(