XML file aanmaken via javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ilse Callen

Ilse Callen

31/08/2018 17:25:53
Quote Anchor link
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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 03/09/2018 14:30:17 door - Ariën -
 
PHP hulp

PHP hulp

26/04/2024 10:54:00
 
Rob Doemaarwat

Rob Doemaarwat

31/08/2018 18:00:33
Quote Anchor link
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).
 
Ilse Callen

Ilse Callen

03/09/2018 10:13:48
Quote Anchor link
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
 
Rob Doemaarwat

Rob Doemaarwat

03/09/2018 13:01:28
Quote Anchor link
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?
 
Ilse Callen

Ilse Callen

03/09/2018 14:00:20
Quote Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 14:03:27
Quote Anchor link
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.
 
Ilse Callen

Ilse Callen

03/09/2018 14:16:51
Quote Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 14:23:01
Quote Anchor link
Je kan toch met AJAX een PHP-script oproepen, zodra je een onclick doet?
 
Ilse Callen

Ilse Callen

03/09/2018 15:22:08
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
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();

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 03/09/2018 15:29:45 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 15:31:39
Quote Anchor link
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?
 
Ilse Callen

Ilse Callen

03/09/2018 15:33:21
Quote Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 16:12:43
Quote Anchor link
Dan heb je weinig aan je JavaScipt oplossing. je zult dan hoogstens met JavaScript een AJAX request kunnen doen, waarna je met PHP, en dan met name met SimpleXML of DOMdocument je XML bouwt.
 
Ilse Callen

Ilse Callen

03/09/2018 16:16:41
Quote Anchor link
ah ja dat stuk met dat was al wel gelukt maar ik kreeg het niet voor elkaar met de xmlhttprequest

Toevoeging op 03/09/2018 16:32:05:

ik heb het nu op deze manier. Maar hij doet er verder niks mee. hij maakt het bestand niet aan.

Javascript stuk:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
var xmlDoc = xhttp.responseXML;
}
}
xhttp.open("GET", "chatxml.php?user=" + user, true);
xhttp.send();

chatxml.php $selecteduser = $_GET["user"];

$xmlstring = "
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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);
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 16:55:38
Quote Anchor link
Gelieve code-tags te gebruiken, zoals in de de 'mod-break staat'. Dat maakt het beter leesbaarder.
 
Ilse Callen

Ilse Callen

03/09/2018 17:06:48
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{

if (xhttp.readyState == 4 && xhttp.status == 200)
{
var
xmlDoc = xhttp.responseXML;
}
}

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


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$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);
?>
Gewijzigd op 03/09/2018 17:08:36 door Ilse Callen
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 17:20:58
Quote Anchor link
Werkt het PHP-bestand wel als je die aanroept?
 
Ilse Callen

Ilse Callen

03/09/2018 17:33:14
Quote Anchor link
deze code deed ik voorheen in het bestand zelf bij de foreach loop en daar werkte hij gewoon. Ik had net ook een alert in the readystate if gezet en die werd gewoon getoond
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 17:37:20
Quote Anchor link
Maar wat geeft het PHP-script terug als je die die uitvoert?

Ik raad aan om volledige PHP-tags te gebruiken, en geen shorttags. Die laatste kunnen worden uitgezet waarna je source opeens zichtbaar wordt.
Gewijzigd op 03/09/2018 17:37:56 door - Ariën -
 
Ilse Callen

Ilse Callen

03/09/2018 17:46:43
Quote Anchor link
als ik bij onclick de pagina door laat verwijzen naar chatxml.php krijg ik dit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$selecteduser
";    
$file = "
chatuser ".$selecteduser." ".$_SESSION['username'].".xml";
$dom = new DOMDocument();
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($xmlstring); $dom->save($file); ?>

>?

Toevoeging op 03/09/2018 17:47:25:

hij echo'd de code gewoon zeg maar

Toevoeging op 03/09/2018 17:50:05:

eerst had ik dat xml gedeelte in de foreach loop zitten en dat deed hij wel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
while($users = mysqli_fetch_assoc($result))
        {

            foreach ($users as $value)
            {

                if ($value != $_SESSION["username"])
                {
  
                    echo "<label onclick='Chatuser(".$count.")' name='newchat' id='newchat".$count."'>$value</label>";
                    echo "<br>";    

                    $count = $count + 1;                    
                }
            }
        }    
>
Gewijzigd op 03/09/2018 17:47:01 door Ilse Callen
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 17:54:39
Quote Anchor link
Klopt....
Gebruik de normale PHP-tags.
 
Ilse Callen

Ilse Callen

03/09/2018 17:57:20
Quote Anchor link
hoe bedoel je normale php-tags?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.