Archief - PHP: Xml output in flash

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Morre1977

Legacy Member
Hallo,

het lukt me niet om mijn php als xml te laden in flash. Als ik de php file inlaadt geeft hij undefined aan in mijn textvelden. Voer ik de php op de server uit, dan krijg ik wel een mooie xml terug. sla ik diezelfde xml op als een .xml bestand, en probeer het zo in te laden in Flash dan lukt dit wel.

iemand een idee hoe dat komt ?

dit is mijn php:

Code:
<?
$connection = mysql_connect("localhost", "root", "*****");
mysql_select_db("store");

$query = 'SELECT * FROM products LIMIT 5';
$results = mysql_query($query);

	echo "<?xml version=\"1.0\"?>\n";
	echo "<catalogus>\n";
while($record = mysql_fetch_object($results)){
	echo " <producten>\n";
	echo "  <item>$record->product</item>\n";
	echo "  <prijs>$record->kostprijs</prijs>\n";
	echo " </producten>\n";
	}
	echo "</catalogus>";

mysql_close($connection);

?>

en dit is mijn actionscript:

Code:
var output_xml = new XML();
output_xml.ignoreWhite = true;
output_xml.onLoad = function(success){
        if (success){
                
                output_txt.text = this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue;
        }	else output_txt.text = "Error loading XML";
}
output_txt.text = "Loading...";
output_xml.load("products2.php");

Nu, volgens mij ligt het aan mijn php aangezien de flash de xml rechtstreeks WEL inlaadt maar ik kan maar niet vinden waaraan het ligt.

maT'

Legacy Member
Heb je al eens geprobeerd via de Header()-functie een mime-type mee te geven, dat overeenkomt met het XML-mime type? Zodat, als flash dat bestand inleest, het weet dat het om een XML bestand gaat.

Morre1977

Legacy Member
Code:
header ("content-type: text/xml");

ja dat had ik ook geprobeerd. maakt geen verschil uit

Morre1977

Legacy Member
helemaal niks. Als ik een xml laadt dan geeft hij de trace wel weer

dus ipv

Code:
output_xml.load("products2.php");

dit

Code:
output_xml.load("products2.xml");

dan lukt het wel, maar dat is niet de bedoeling dus.

taLa.

Legacy Member
Wat gebeurt er dan precies ? Krijg je errors, toont hij een tekst, tracet hij undefined, of wat ? Heb je ook al eens de output van je PHP script apart bekeken ?

Morre1977

Legacy Member
geen errors, hij traced gewoon blanco. toont niks.

output van mijn php script ziet er goed uit.

bal 12 stoel 6

kijk ik naar de bron dan geeft ie:

Code:
<?xml version="1.0"?>
<catalogus>
  <producten>
     <item>bal</item>
     <prijs>12</prijs>
  </producten>
  <producten>
     <item>stoel</item>
     <prijs>6</prijs>
  </producten>
</catalogus>

EDIT: aangepast

taLa.

Legacy Member
Zeker dat dat de output is ? Ik heb PHP toch nooit \" letterlijk weten outputten wanneer het gebruikt wordt om een sluitende " te escapen ...

Morre1977

Legacy Member
owja sorry
<?xml version="1.0"?>
moet dat zijn, zo staat het ook. had het moeten overtypen en dus niet gecontroleerd.

taLa.

Legacy Member
Heb het hier even getest door je output in een xml bestand te zetten, en dit werkt nochtans perfect hoor:

Code:
var output_xml = new XML();
output_xml.ignoreWhite = true;
output_xml.onLoad = function(success) {
	if (success) {
		trace( this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue )
		output_txt.text = this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue;
	} else {
		output_txt.text = "Error loading XML";
	}
};
output_txt.text = "Loading...";
output_xml.load("source.xml");

Ik krijg als output "bal". Het lijkt me dus dat Flash je php script niet kan vinden, maar normaal rapporteert hij dat gewoon ...

Morre1977

Legacy Member
ja dat zei ik ook. Met een xml lukt het, met de php niet

hij geeft nochthans niet aan dat de file niet gevonden kan worden.

ik heb een products2.xml file om te testen. deze laadt hij wel.

de products2.php die in dezelfde directory zit, die laadt hij niet.

Morre1977

Legacy Member
Dat lukt .... HELD :D hier ben ik al 2 dagen achter aant zoeken.
Hoe komt dit dan ?

taLa.

Legacy Member
Dat komt omdat met load( "products.php" ) het bestand products.php gaat inladen net zoals het dat zou doen voor products.xml, dus gewoon de inhoud van het bestand. Je server komt er dus niet bij kijken en zal het script dus ook niet uitvoeren, Flash leest het gewoon in van op de schijf. Door de URL naar het script te gebruiken gaat Flash eerst aan de server op localhost de HTTP response vragen voor products.php, waarop de server nu dus wel het script uitvoert en de juiste response genereert die Flash vervolgens deftig kan inladen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan