Z XML nie miałem zbyt dóżo do czynienia i z tad problem przy pobieraniu danych za pomocą JS.
Tworze taki skrypt w php:
<?php //tworzymy doc XML $dom=new DOMDocument('1.0', 'iso-8859-2'); //główny element XML $d="$datad"; $m="$datam"; //--------------------------------------------------------------------------------------------------------------- $month = array(0,Styczeń,Luty,Marzec,Kwiecień,Maj,Czerwiec,Lipiec,Sierpień,Wrzesień,Paˇdziernik,Listopad,Grudzień); //--------------------------------------------------------------------------------------------------------------- $miesiac = $month[$m]; $imieniny = $imie[$d]; //wyświetlany tekst //echo"<b>Dzis jest $d $miesiac $rok r. Imieniny obchodzi: $imieniny . Teraz jest $godz
:$min</b>"; $response=$dom->createElement('response'); $dom->appendChild($response); //element data $dane=$dom->createElement('dane'); $response->appendChild($dane); $dz=$dom->createElement('dz'); $dzien=$dom->createTextNode($d); $dz->appendChild($dzien); $mi=$dom->createElement('mi'); $mies=$dom->createTextNode($miesiac); $mi->appendChild($mies); $ro=$dom->createElement('ro'); $r=$dom->createTextNode($rok); $ro->appendChild($r); $imie=$dom->createElement('imie'); $im=$dom->createTextNode($imieniny); $imie->appendChild($im); $dane->appendChild($dz); $dane->appendChild($mi); $dane->appendChild($ro); $dane->appendChild($imie); ?>
w kodzie php wszystko działa
Problem mam przy pobieraniu danych za pomocą JS a dokładnie w funkcji odpowiedz();
Kod
var obiekt = stworzObiekt();
function stworzObiekt()
{
var obiekt;
try{
obiekt = new XMLHttpRequest();
}
catch(e){
var wersjaIE = new Array("MSXML2.HMLHTTP.6.0", "MSXML2.HMLHTTP.5.0", "MSXML2.HMLHTTP.4.0", "MSXML2.HMLHTTP.3.0", "MSXML2.HMLHTTP", "Microsoft.XMLHTTP");
for(i=0; i<wersjaIE.length && !obiekt; i++)
{
try{
obiekt= new ActiveXObject(wersjaIE[i]);
}
catch(e){}
}
}
if(!obiekt)
alert("błąd podczas tworzenia obiektu");
else
return obiekt;
}
function czytaj(){
if(obiekt){
try{
obiekt.open("GET", "imieniny/imieniny.php5", true);
obiekt.onreadystatechange = obsluga;
obiekt.send(null);
}
catch(e){alert("brak połączenia z serwerem!!")}
}
}
function obsluga(){
if(obiekt.readyState == 4){
if(obiekt.status == 200){
try{ // czyta wiadomośc
odpowiedz();
}
catch(e){ alert("błąd" + e.toString();}
}
else {alert("problem z danymi");}
}
}
function odpowiedz(){
var odp = obiekt.responseXML;
xmlRoot = odp.documentElement;
dan = xmlRoot.getElementByTagName("ro");
var html = dan.firstChild.data;
mydiv= document.getElementById("glowna");
mydiv.innerHTML = html;
}
function stworzObiekt()
{
var obiekt;
try{
obiekt = new XMLHttpRequest();
}
catch(e){
var wersjaIE = new Array("MSXML2.HMLHTTP.6.0", "MSXML2.HMLHTTP.5.0", "MSXML2.HMLHTTP.4.0", "MSXML2.HMLHTTP.3.0", "MSXML2.HMLHTTP", "Microsoft.XMLHTTP");
for(i=0; i<wersjaIE.length && !obiekt; i++)
{
try{
obiekt= new ActiveXObject(wersjaIE[i]);
}
catch(e){}
}
}
if(!obiekt)
alert("błąd podczas tworzenia obiektu");
else
return obiekt;
}
function czytaj(){
if(obiekt){
try{
obiekt.open("GET", "imieniny/imieniny.php5", true);
obiekt.onreadystatechange = obsluga;
obiekt.send(null);
}
catch(e){alert("brak połączenia z serwerem!!")}
}
}
function obsluga(){
if(obiekt.readyState == 4){
if(obiekt.status == 200){
try{ // czyta wiadomośc
odpowiedz();
}
catch(e){ alert("błąd" + e.toString();}
}
else {alert("problem z danymi");}
}
}
function odpowiedz(){
var odp = obiekt.responseXML;
xmlRoot = odp.documentElement;
dan = xmlRoot.getElementByTagName("ro");
var html = dan.firstChild.data;
mydiv= document.getElementById("glowna");
mydiv.innerHTML = html;
}
Proszę o pomoc.
Witam uporałem sie juz z tym poniżej podaje rozwiazanie troche zmieniłem kod. Kod który podam dotyczy jedynie funkji odpowiedz(); oraz xml pod php.
funkcja odpowiedz();
Kod
function odpowiedz(){
var odp = obiekt.responseXML;
xmlRoot = odp.documentElement;
html = xmlRoot.getElementsByTagName("dzis")[0].firstChild.data;
htmlimie = xmlRoot.getElementsByTagName("imie")[0].firstChild.data;
mydiv= document.getElementById("glowna");
mydiv.innerHTML ="<center>" + html +"</br>"+ htmlimie + "</center>";
}
var odp = obiekt.responseXML;
xmlRoot = odp.documentElement;
html = xmlRoot.getElementsByTagName("dzis")[0].firstChild.data;
htmlimie = xmlRoot.getElementsByTagName("imie")[0].firstChild.data;
mydiv= document.getElementById("glowna");
mydiv.innerHTML ="<center>" + html +"</br>"+ htmlimie + "</center>";
}
Oraz plik php z którego wyciagane są dane:
<?php $response=$dom->createElement('response'); $dom->appendChild($response); $dzis=$dom->createElement('dzis'); $data=$dom->createTextNode("Dzisiaj jest $d $miesiac $rok"); $dzis->appendChild($data); $imie=$dom->createElement('imie'); $imieodp=$dom->createTextNode("Imieniny obchodząąą $imieniny"); $imie->appendChild($imieodp); $dan=$dom->createElement('dan'); $dan->appendChild($dzis); $dan->appendChild($imie); $response->appendChild($dan); ?>
Moze komus sie przyda jak wyciagac dane xml za pomoca javascript z php.