PDA

Volledige versie bekijken : xml vraagje (sorteren van nieuws berichten)


vane
%Europe/Berlin %363 %2007, 09:43
hey allemaal even snel een vraagje.

ik heb een nieuws systeempje gemaakt die werkt via een cmsje. dat cmsje tuft een xml bestand uit die er als volgt uit ziet:
<item>
<title> detitel </title>
<body> body tekst</body>
<date> datum</date>
<image> plaatje</image>
<type> 1</type>
</item>

verder laad ik de xml in en dta werkt allemaal perfect maar nou wil ik dus dat als je op (knop1) drukt dat hij alle berichten laat zien met type1 en als je dus op knop 2 drukt dat hij alle berichten laat zien met type 2

mijn as is als volgt:


var myxml:XML = new XML();
myxml.ignoreWhite = true;
var titel:Array = new Array();
var body:Array = new Array();
var date:Array = new Array();
var image:Array = new Array();
var itemtype:Array = new Array();
var currentXMLitem:Number;
var wichitemison:Number = 0;
myxml.load("http://rambam.intern.twisted.nl/script/?command=get_news");

myxml.onLoad = function() {
var item:Array = myxml.firstChild.childNodes;
for (i=0; i<item.length; i++) {
titel.push(item[i].childNodes[0].firstChild.nodeValue);
body.push(item[i].childNodes[1].firstChild.nodeValue);
date.push(item[i].childNodes[2].firstChild.nodeValue);
image.push(item[i].childNodes[3].firstChild.nodeValue);
itemtype.push(item[i].childNodes[4].firstChild.nodeValue);
}
currentXMLitem = 0;
_root.news.vacatures.titel.text = titel[currentXMLitem];
_root.news.vacatures.body.text = body[currentXMLitem];
_root.news.vacatures.date.text = date[currentXMLitem];
_root.news.vacatures.holder._visible = false;
displayplaatje();
//
};
function checkitemtype() {
if (_root.news.vacatures.itemfield.text == "1") {
trace("item = 1")
} else {
trace("item = 2")
}
}
_root.news.vacatures.prevbtn.onRelease = function() {
if (currentXMLitem>0) {
currentXMLitem--;
_root.news.vacatures.itemfield.text = itemtype[currentXMLitem];
_root.news.vacatures.titel.text = titel[currentXMLitem];
_root.news.vacatures.body.text = body[currentXMLitem];
_root.news.vacatures.date.text = date[currentXMLitem];
_root.news.vacatures.holder._visible = false;
_root.news.vacatures.closebtn._visible = true;
checkitemtype()
displayplaatje();
}
};
_root.news.vacatures.nextbtn.onRelease = function() {
if (currentXMLitem<body.length-1) {
currentXMLitem++;
_root.news.vacatures.itemfield.text = itemtype[currentXMLitem];
_root.news.vacatures.titel.text = titel[currentXMLitem];
_root.news.vacatures.body.text = body[currentXMLitem];
_root.news.vacatures.date.text = date[currentXMLitem];
_root.news.vacatures.holder._visible = false;
_root.news.vacatures.closebtn._visible = true;
checkitemtype()
displayplaatje();
}
};


kan iemand mij mss helpen?

thanks alsvast

waldo_cosman
%Europe/Berlin %366 %2007, 09:47
Hey

Gebruik je ze altijd afzonderlijk? (type 1 en type 2)? Dan kun je 2 aparte arrays maken en in je for loop ga je checken of het type 1 of 2 is en dan in een array arr_type1 of arr_type2 pushen ipv allemaal in dezelfde array.

Of je overloopt je gehele array(met alle types in) als je op de knop klikt, en haalt er het type uit dat je wil.

vane
%Europe/Berlin %411 %2007, 10:52
kan je mss een voorbeeld geven met as?

waldo_cosman
%Europe/Berlin %431 %2007, 11:21
Momenteel steek je alle titels apart in een array, images apart in een array etc etc..

Wat je zou kunnen doen is het volgende:

var arr_items:Array = new Array();
for (i=0; i<item.length; i++)
{
//--Hier maak je nieuw object aan met alle properties
var oObject:Object = new Object();
oObject.titel = item[i].childNodes[0].firstChild.nodeValue;
oObject.body= item[i].childNodes[1].firstChild.nodeValue;
oObject.date = item[i].childNodes[2].firstChild.nodeValue;
oObject.image = item[i].childNodes[3].firstChild.nodeValue;
oObject.itemtype = item[i].childNodes[4].firstChild.nodeValue;
//--Het object in een array stoppen
arr_items.push(oObject);
}

//--Bij het klikken op de knop overloop je je arr_items en zoek je naar het item.
button.onPress = function()
{
for (i=0; i<arr_items.length; i++)
{
//--Hier haal je terug zo'n object uit je array
var oObject:Object = arr_items[i];
if(oObject.itemtype=="2")
{
//--Dan moet er iets gebeuren, dit kan ook als het 1,3,4,5,6,7,8,9.. moet zijn
}
}
}


Dit is in het kort wat het een beetje zou moeten zijn, er kunnen syntaxfouten in staan, maar die haal je er wel uit zeker ;)

U got the point?

vane
%Europe/Berlin %440 %2007, 11:33
yup ik snap het ik ga er meteen werk van maken thanks!

waldo_cosman
%Europe/Berlin %444 %2007, 11:39
Np

Enjoy

vane
%Europe/Berlin %652 %2007, 16:39
hihi ik heb het uiteindelijk voor elkaar gekregen maar 10 x simpelere als jij mij uitlegde.

even ter informatie -> wat ik deed is de onload in een funcite zetten en die een variabele mee geven (type) daarna kon ik simpel weg door op de knop te zeggen loadXML("2") mijn type selecteren (loadXML) was mijn functie dus

ah fijn mss dat jullie er nog wat aan hebben

cheers