[XML/php]meerdere waarden versturen met Msxml2.XMLHTTP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met een scriptje dat met XML een php functie aanroept en de teruggegeven waarde in een div schrijft.

Ik gebruik hiervoor het activeX object Msxml2.XMLHTTP als er een error ontstaat gebruik ik Microsoft.XMLHTTP. dat doe ik zo.
code:
1
2
3
4
5
6
7
8
9
10
[u]
try { 
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
  try { 
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  } catch (E) { 
   xmlhttp = false; 
  } 
} [/u]

de tekst die terug gestuurt wordt schrijf ik zo in de div.

document.getElementById('content').innerHTML = xmlhttp.responseText;

Alleen nu kan het voor komen dat op een andere computer content wordt toegevoegt. Dus dan moet de div automatisch geupdate worden. Dit werkt allemaal. Nu is het probleem dat het voor kan komen dat er een plaatje in de div staat. om deze steeds te updaten is niet handig.

Nu wil ik dus alleen de nieuwe content onder de oude content in de div schrijven. dit doe ik zo.


Newchat = xmlhttp.responseText;
document.getElementById('Content').innerHTML+=NewContent;


dit werkt ook allemaal. Maar nu moet ik dus weten welke content nieuw is want dat kan per computer anders zijn. Ik heb bedacht om een ID mee te geven en aan de hand daarvan te checken of welke content al wel aanwezig is en welke niet. Dit ID moet niet naar het scherm gescheven te worden.

In php stuur ik zo de data terug.
code:
1
2
3
4
5
[u]     echo "\n";
        echo $data['ID'];
        echo ":  ";
        echo $data['Content'];
[/u]

Nu is het probleem dat ik met de functie responseText niet meerdere variabelen mee kan sturen athans ik weet niet hoe dat moet. Er is op internet veel informatie te vinden over het ActiveX component maar niet hoe je een ID mee kan geven en die niet in het scherm te schrijven.

Kent iemand het probleem en weet een oplossing?

[ Voor 4% gewijzigd door Creepy op 01-05-2005 15:15 . Reden: Opgeleukt met [code] tags ;) ]

Jochemmol


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Kijk anders eens naar responseXML. Zo kun je een geheel XML document als waarde terug sturen en krijg je die ook als DOM object terug. Erg handig. Overigens zou je ook kunnen splitten op die : waarbij je dan de eerste index als ID gebruikt en de rest als content. Maar XML is wel netter, iets meer werk dat wel.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Je kunt toch gewoon meerdere responses doen? Of je zet het id vooraan en lees die clientside met JS eerst uit voordat je de inhoud op het scherm zet.

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
André schreef op zondag 01 mei 2005 @ 15:14:
Je kunt toch gewoon meerdere responses doen? Of je zet het id vooraan en lees die clientside met JS eerst uit voordat je de inhoud op het scherm zet.
Je krijgt per request maar 1 response terug natuurlijk. Maar je kunt zo veel requests doen als je wil. Bovendien vind ik 2 requests naar dezelfde pagina onderandere een slechte gewoonte als het ook in 1 kan.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Michali schreef op zondag 01 mei 2005 @ 15:17:
[...]

Je krijgt per request maar 1 response terug natuurlijk.
Meerdere requests bedoelde ik idd :X

Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Jochemmol schreef op zondag 01 mei 2005 @ 15:05:
code:
1
2
3
4
5
6
7
8
9
try { 
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
  try { 
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  } catch (E) { 
   xmlhttp = false; 
  } 
}
Hoe ga je dit toepassen in Firefox / Mozilla :? Je kunt beter deze methode gebruiken

JavaScript:
1
2
3
4
5
try {
  xmlhttp = new XMLHttpRequest();
} catch (e) {
  xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
}


Waarbij Msxml2.XMLHTTP de versie onafhankelijke aanroep is...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Wat dacht je er van om een javascript (met een array oid) en deze via eval uit te voeren?

Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben het nu aan het proberen met een array en dan met syntax

xmlhttp.responseText.split()

Maar ben eerst eens aan het uitzoeken (weet ik is vast basic) wat eval is en doet 8)7

[ Voor 32% gewijzigd door Jochemmol op 01-05-2005 17:18 ]

Jochemmol

Pagina: 1