Ik heb de volgende uitdaging: Ik wil een XML die ik via een $_POST binnenkrijg gebruiken in javascript. Ik dacht daarvoor de functie ParseFromString te gebruiken. In de onderstaande source staat ter test een variabele txt (met daarin XML code) die zonder problemen uitgelezen kan worden. Nu wil ik in deze txt variabele de inhoud van de variabele $xml gebruiken of rechtstreeks de $_POST["xml"] gebruiken. Wie-o-wie kan mij helpen?


<!DOCTYPE html>
<html>
<?php
// Invoer uit formulier halen en opslaan in variabelen
$xmltxt     = $_POST["xml"];
?>
<body>
<h1>Weergeven inhoud XML</h1>
<div>
<b>To:</b> <span id="to"></span><br>
<b>From:</b> <span id="from"></span><br>
<b>Message:</b> <span id="message"></span>
</div>

<script>

txt="<to>Tove</to>";
txt="<note>";
txt=txt+"<to>Tove</to>";
txt=txt+"<from>Jani</from>";
txt=txt+"<heading>Reminder</heading>";
txt=txt+"<body>Don't forget me this weekend!</body>";
txt=txt+"</note>";

if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  }
//else // Internet Explorer
 // {
 // xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
 // xmlDoc.async=false;
 // xmlDoc.loadXML(txt);
 // }

document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>

ik snap niet precies wat je bedoelt volgens mij maar als je gewoon het php variable wil omzetten naar een javascript variable om hem daar na verder te kunnen gebruiken in javascript kun je misschien gewoon dit doen:

<script>
var xmltxt = "<?= $xmltxt ?>";
</script>

maar let dan wel op dat je dit pas doet nadat php het variable $xmltxt heeft benoemt

want anders zou je dit moeten doen:

<script>
var xmltxt = "<?= $_POST['xml'] ?>";
</script>

Bedankt voor de reactie Daniel. Het was uiteindelijk mijn bedoeling om de inhoud behorend bij een tag verder te gebruiken. Uiteindelijk heb ik het via een simplexml_load_string in PHP opgelost.

Reageren