Hallo,

Ik probeer een xml bestand aan te maken via javascript. De naam van het bestand moet gemaakt worden in de javascript functie maar hij blijft iedere keer zeggen dat het bestand niet bestaat. Ik kan op internet niet goed vinden wat ik verkeerde doe. Dit is de code dit ik op internet heb gevonden en die heb ik aangepast naar mijn eigen code. Achter chatuser.xml moeten de namen komen van diegene die in de chat zit.

Dit is mijn code. Alvast bedankt.

var xmlDoc = document.implementation.createDocument("chatuser.xml", "user");

			var xhttp = new XMLHttpRequest();
			xhttp.onreadystatechange = function() 
			{
				if (xhttp.readyState == 4 && xhttp.status == 200) 
				{
					var xmlDoc = xhttp.responseXML;
				}
			}
			xhttp.open("GET", "chatuser.xml", true);
			xhttp.send();
		
			var xmlString = "<user></user>";
			var parser = new DOMParser();
			var xmlDoc = parser.parseFromString(xmlString, "text/xml"); //important to use "text/xml"
			
			var node = xmlDoc.createElement("active");
			var elements = xmlDoc.getElementsByTagName("user");
			elements[0].appendChild(node);

Zo te zien heb je deze gevonden: https://stackoverflow.com/questions/14340894/create-xml-in-javascript

Daar staat dat er 3 mogelijkheden zijn. Je moet ze dus niet alle 3 gebruiken, maar eentje kiezen (al naar gelang je situatie).

Dus: wat is je situatie? Wat wil je bereiken:
- informatie van de client (browser) naar server/service sturen
- informatie van server/service downloaden

Overigens is JSON voor dit soort zaken veel gangbaarder (en veel eenvoudiger).
Ah okay.

Ik heb een label met text en als daar opgelikt wordt moet hij een xml file aan gaan maken met de text van het label in de naam van het file.

Dit is mijn php gedeelte:

echo "<label onclick='myfunction(".$myvar.")' name='label' id='label".$myvar."'>$value</label>";

Dus zodra ik op de label klik moet hij met $value een xml document aanmaken
En hoe moet dat stuk XML er dan uit zien?
-> Als het iets heel simpels is kun je ook gewoon een beetje knippen & plakken met "tekst".

En waar moet het naar toe?
-> Naar de server, naar een service?
-> Is het wel nodig om dit via XML te doen, of kun je ook de kale waarde doorgeven, of bijvoorbeeld via JSON?
In het javascript gehaald maak ik het xml file aan. Hij moet dat het bestaand aanmaken met 2 variabelen en dan de nodes aanmaken en hier een text inzitten. Bij een volgende pagina wil ik dat xml bestand weer oproepen en lees en ik schreef ik hieruit
Als je het wilt schrijven naar de server, dan moet je toch echt met een serverside-programmeertaal aan de slag, zoals PHP. JavaScript zelf is client-side. Het zou wel kunnen met Node.JS, maar dan praten we over een andere opbouw en een andere techniek.
Ja met PHP lukt het, maar hij moet het xml file pas aanmaken zodra ik op het label klik. Hoe ik het had bij de php maakt hij het meteen aan in de foreach loop. Maar het probleem is met php kan ik de variable niet aan van de laan
Je kan toch met AJAX een PHP-script oproepen, zodra je een onclick doet?
ja dat gaat dan via xhttp request. dat heb ik al een keer geprobeerd maar dat doet hij niet. Je kunt dan via de open functie open de waarde meesturen. Dan wordt het "chatuser.php?user=" + username; als ik het goed heb. en dan via $_GET["user"] kan deze worden opgehaald als ik het goed heb.

Het is ff geleden sinds dat ik heb gecodeerd

var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() 
            {
                if (xhttp.readyState == 4 && xhttp.status == 200) 
                {
                    var xmlDoc = xhttp.responseXML;
                }
            }
            xhttp.open("GET", "chatuser.xml", true);
            xhttp.send();

Waarom wil je het XML-bestand aanmaken via JavaScript. Het is enkel leuk voor als je het direct wilt zien, maar omdat het enkel bij de client bestaat, heeft het eigenlijk naar mijn idee op deze manier weinig meerwaarde. Of gebruik je soms NodeJS of een andere socket?
nee die gebruik ik niet. zodra bij onclick moet dat bestand gemaakt worden en in de website server directory opgeslagen worden. bij de pagina dit na de onclick wordt geladen moet dit bestand weer opgeroepen worden en ook naar geschreven worden

Reageren