Archief - XML: [XML / JS]: XML inladen in JS

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.

Strangler

Legacy Member
Hallo, weer een vraagje.

Hoe kan ik XML inladen in een .js bestand?

het XML-bestand zou eigenlijk een .php bestand zijn met een lus die alle info uit de database haalt.
Daarna zou ik alles in een Array willen steken.

Momenteel wordt dit zo gedaan:

Code:
var pausecontent2=new Array()
pausecontent2[0]='<a href="http://www.news.com">News.com: Technology and business reports</a>'
pausecontent2[1]='<a href="http://www.cnn.com">CNN: Headline and breaking news 24/7</a>'
pausecontent2[2]='<a href="http://news.bbc.co.uk">BBC News: UK and international news</a>'

Maar ik wil dit dus anders.
Alleen weet ik niet hoe eraan te beginnen.
ik dacht iets van:

Code:
xmlDoc.load("bestand.php");

en xml-structuur:
HTML:
<?xml version="1.0" ?>  
<bericht> 
<titel>Dit is de titel van een bericht</titel>
<url>Dit is de link naar het bericht</url>
</bericht>

Is dit mogelijk door een php-bestand in te laden (met actionscript lukt dit alleszins)?
En hoe moet ik die array dan vullen in JS?


Hopelijk kan er mij iemand helpen.

Groeten,

Jelle

wxphe

Legacy Member
Ik zie dat je ook met PHP werkt, waarom drop je ze niet in een sessie. En ze er dan terug uithalen met een foreach, aangezien je toch heel de rij variabelen nodig hebt.

Zoiets
PHP:
$query=//haal al je gevens op 
//dan vullen met while
while ($print=mysql_fetch_assoc($qeury))
     {
     //id is gewoon de numering van je tabel (wat je normaal altijd hebt)
     
    $_SESSION['pausecontent'][$print['id']]= $print['link'];

    }

//nu hebben we alle variabelen zitten in de sessie 'pausecontent' en gaan we ze terug oproepen met foreach é

//in de pagina waar we willen printen
foreach($_SESSION['pausecontent'] as $id => $link) 
  {
 // hier worden alle gegevens geprint, je id is rijnummer en je link is het adres
 //En zo word heel de array overlopen

  }


Het is maar een suggestie é

Strangler

Legacy Member
ik kan dit volgens mij niet in een .js bestand steken...

wxphe

Legacy Member
Strangler zei:
ik kan dit volgens mij niet in een .js bestand steken...


Ik ben niet mee zu :$ , wat moet er gebeuren met de gegevens ?

=> Ze zitten in databas
+> Je wil ze in array
+> je wil ze in .js bestand => Hoe (vorm) en waarom als ze in een sessie zitten?

Strangler

Legacy Member
omdat in het .js-bestand alles in een scrollerke moet worden gezet.

wxphe

Legacy Member
Strangler zei:
omdat in het .js-bestand alles in een scrollerke moet worden gezet.

Geef eens de structuur van je .js bestand, dus hoe moeten de gevens erin komen? Of moet het volgens dat xml voorbeeld zijn?

Strangler

Legacy Member
Code:
var pausecontent2=new Array()
pausecontent2[0]='<a href="[b]url1uitxml[/b]">[i]titel1uitxml[/i]</a>'
pausecontent2[1]='<a href="[b]url2uitxml[/b]">[i]titel1uitxml[/i]</a>'
pausecontent2[2]='<a href="[b]url3uitxml[/b]">[i]titel1uitxml[/i]</a>'

wxphe

Legacy Member
Strangler zei:
Code:
var pausecontent2=new Array()
pausecontent2[0]='<a href="[b]url1uitxml[/b]">[i]titel1uitxml[/i]</a>'
pausecontent2[1]='<a href="[b]url2uitxml[/b]">[i]titel1uitxml[/i]</a>'
pausecontent2[2]='<a href="[b]url3uitxml[/b]">[i]titel1uitxml[/i]</a>'

Ok, heb al deel van wat je wilt.

*Maar url1uitxml en titel1uitxml, die komen toch eerst uit database (dan kan ik gebruik maken van men sessie) ?

*Kun je eens die database structuur geven en komen ze er niet uit, ga je me heel wat tijd moeten geven :woohoo: .

*Moet dat xml bestand ook aangemaakt worden?

wxphe

Legacy Member
wxphe zei:
Ok, heb al deel van wat je wilt.

Denk ik toch => Hier heb je een werkend voorbeeld, met het verschil dat ik je db structuur nog moet weten om te kunnen werken met de juiste gegevens:

PHP:
<?php 
session_start();
$_SESSION['pausecontent2'][1]="http://www.1.be";
$_SESSION['pausecontent2'][2]="http://www.2.be";
$_SESSION['pausecontent2'][3]="http://www.3.be";
$_SESSION['pausecontent2'][4]="http://www.4.be";
$_SESSION['pausecontent2'][5]="http://www.5.be";

$bestand=fopen( 'test.js' , 'w');
fputs($bestand ,"var pausecontent2=new Array()\n");
foreach($_SESSION['pausecontent2'] as $id => $link)
  {
  	$lijn="pausecontent2[$id]='<a href=\"url1uitxml\">titel1uitxml</a>'\n";
    fputs($bestand ,$lijn);
  }
fclose($bestand);
?>

Strangler

Legacy Member
ik versta wat je wilt doen, maar...
dat is gewoon enkele regels bijschrijven.
De volgende keer dat ik dat bestand opendoe, dan staan die regels er weer.
de bedoeling is dat ik de laatste 3 items die toegevoegd zijn aan de database in dat bestand wil hebben.
Als je het zo doet, dan blijft hij nieuwe lijnen bijschrijven, en verwijdert hij de oude niet.
Volgens mij moet het echt in de .js-file gebeuren.
XML importeren in .js, en dan daar een loop opzetten...
Dat zou volgens mij gemakkelijker zijn...
de query enzo, das geen probleem.

wxphe

Legacy Member
Strangler zei:
ik versta wat je wilt doen, maar...
dat is gewoon enkele regels bijschrijven.
De volgende keer dat ik dat bestand opendoe, dan staan die regels er weer.
de bedoeling is dat ik de laatste 3 items die toegevoegd zijn aan de database in dat bestand wil hebben.
Als je het zo doet, dan blijft hij nieuwe lijnen bijschrijven, en verwijdert hij de oude niet.
Volgens mij moet het echt in de .js-file gebeuren.
XML importeren in .js, en dan daar een loop opzetten...
Dat zou volgens mij gemakkelijker zijn...
de query enzo, das geen probleem.

Test, nu eens, hij maakt het bestand telkens opnieuw aan.
En voor enkel de laatste 3 => order by id (of date) DESC in je query mss en dan met LIMIT werken ?

greetz wxphe
PHP:
<?php
session_start();
$_SESSION['pausecontent2'][4]="http://www.1.be";
$_SESSION['pausecontent2'][5]="http://www.2.be";
$_SESSION['pausecontent2'][6]="http://www.3.be";

if (file_exists('test.js')) {unlink('test.js'); };
$bestand=fopen( 'test.js' , 'w');
fputs($bestand ,"var pausecontent2=new Array()\n");
foreach($_SESSION['pausecontent2'] as $id => $link)
  {
      $lijn="pausecontent2[$id]='<a href=\"url1uitxml\">titel1uitxml</a>'\n";
    fputs($bestand ,$lijn);
  }
fclose($bestand);
unset($_SESSION['pausecontent2']);
session_destroy();
?>

Strangler

Legacy Member
aha, maar hij mag het bestand niet contant opnieuw aanmaken, omdat de rest van het script er nog inzit...
Met name: het deel dat het nieuws doet 'scrollen'.

wxphe

Legacy Member
Strangler zei:
aha, maar hij mag het bestand niet contant opnieuw aanmaken, omdat de rest van het script er nog inzit...
Met name: het deel dat het nieuws doet 'scrollen'.


Is het dan niet simpeler om die waarden in je .js file zelf op te vragen met een deftige PHP query. En die dan met een While loop in een javascript var dumpen ?

Strangler

Legacy Member
ja, maar hoe kan ik php in een .js file steken, dat is de grote vraag ;)

Strangler

Legacy Member
ma LOL!
Ik had dit al eerder geprobeerd, maar toen scheen het niet te werken.
Ik had namelijk mijn functie opgeroepen vóór mijn script!
Nu werkt het dus wel!
Alvast bedankt!
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