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);

<?php en dus geen <?

Zoals overigens in menig tutorial het script begint ;-)

ah ja dat werkt. nu krijg ik:

Notice: Undefined index: user

<?php
$selecteduser = $_GET["user"];
$xmlstring = "<?xml version='1.0' encoding='UTF-8'?>
<users>
<active>$selecteduser</active>
</users>";
$file = "chatuser ".$selecteduser." ".$_SESSION['username'].".xml";
$dom = new DOMDocument();
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($xmlstring);
$dom->save($file);
?>
Dan moet je wel je username in de URL meegeven: chatxml.php?user=jantje

Of bouw met isset() een mooie foutafhandeling in rondom het bestaan van $_GET['user'].
ja dat heb ik
<?php

xhttp.open("GET", "chatxml.php?user=" + user, true);
xhttp.send();

?>
En die error krijg je dus in je AJAX-response?

Kijk eens in de network-tab van je browser, om te kijken naar welke URL hij wordt gestuurd?
ik heb het nu zo staan en hij komt wel gewoon in de readystate. de window.open functie werkt.
<?php
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
var xmlDoc = xhttp.responseXML;
window.open("Chatxml.php","_blank", "Width=700, height=700");
}
}
xhttp.open("GET", "chatxml.php?user=" + user, true);
xhttp.send();
?>
Ik zie twee verschillende URL's ;)

Maar waarom een window.open als je al een AJAX-request doet? Snap je de werking van AJAX überhaupt wel?
ja die window.open moet naar een andere pagina. hij werkt nu. het xml file is aangemaakt. thanks
Is Chatxml.php wat anders dan chatxml.php?
En zo niet, waarom voer je een ajax-request uit?
hij moet even de het xml bestand aanmaken en daarna na de pagina gaan

Reageren