AJAX ... Une vraie solution ???

Statut
N'est pas ouverte pour d'autres réponses.
1er
OP
guslinux

guslinux

Gamerz'ien
Bingo a dit:
Par simple curiosité, pourquoi "application/x-www-form-urlencoded" ?
bonne question : c le header de la requete ca permet d'avertir le script distant du type de données envoyées (je pense que c ca ^^). C'est optionnel.
 

Bingo

Beer Addict
guslinux a dit:
bonne question : c le header de la requete ca permet d'avertir le script distant du type de données envoyées (je pense que c ca ^^). C'est optionnel.
Oui je sais, mais pourquoi "x-www-form-urlencoded" ?
Enfin je sais pas trop ce que fait ta page, mais ça m'étonnait juste qui tu fasses comme si la reqête venait d'un formulaire.
Et pourquoi tu envoies ta requête en GET ? Si tu utilises "application/x-www-form-urlencoded", tu peux faire ça en POST.
 

Calvin80

Respect is key
guslinux a dit:
pour prendre les "paramètres" => nikel mais pour prendre la donnée ... c galère !
tiens.. il me semble que 'jai fait ça sans trop de soucis...
je vais voir mon code et te tiens au courant
 

Calvin80

Respect is key
voila mon code

donnees XML:
Code:
<response>
    <authorized>true</authorized>
    <userid>2</userid>
    <userlogin>calvin80</userlogin>
    <fullname>Try to guess..</fullname>
    <userpwd>123456</userpwd>
    <world>pluton</world>
    <server>164.XX.XX.XXX</server>
    <profiles>
       <profile id="1">profile 1</profile>
       <profile id="2">profile 2</profile>
       <profile id="3">profile 3</profile>
   </profiles>
</response>
Voici le treatement :

Code:
//-----------------------------------------------------------------------------
function AutoConnectResponse()
{
	//alert("Serveur Response :"+xmlrequester.responseText);
	loginresponse=xmlrequester.responseXML;
	authorized=loginresponse.getElementsByTagName("authorized")[0];
	if(!authorized)
	{
		errMsg="Cannot retrieve authorization from serveur !";
		DisplayStatus("not connected");
		DisplayStatusImg("disconnected");
		return;
	}
	if(authorized.firstChild.nodeValue=="true")
	{
		window.gUser.userlogin=loginresponse.getElementsByTagName("userlogin")[0].firstChild.nodeValue;
		window.gUser.userid=loginresponse.getElementsByTagName("userid")[0].firstChild.nodeValue;
		window.gUser.userpwd=loginresponse.getElementsByTagName("userpwd")[0].firstChild.nodeValue;
		window.gUser.world=loginresponse.getElementsByTagName("world")[0].firstChild.nodeValue;
		window.gUser.server=loginresponse.getElementsByTagName("server")[0].firstChild.nodeValue;
		
		var fullname=loginresponse.getElementsByTagName("fullname")[0].firstChild.nodeValue;
		window.gUser.galilei_connected=true;
		//save Params
		SaveParams();
		//load profiles list
		profiles=loginresponse.getElementsByTagName("profile");
		window.gUser.profiles=new Array();
		for (i=0;i<profiles.length; i++)
		{
			window.gUser.profiles[profiles[i].getAttribute("id")]=profiles[i].firstChild.nodeValue;
		}
		//change profilelist
		window.DisplayProfiles();
		DisplayStatus(window.gUser.userlogin+" connected");
		DisplayStatusImg("connected");
	}
	else
	{
		errMsg=loginresponse.getElementsByTagName("errMsg")[0];
		DisplayStatus("not connected");
		DisplayStatusImg("disconnected");
	}
}

//-----------------------------------------------------------------------------
]
 
1er
OP
guslinux

guslinux

Gamerz'ien
Calvin80 a dit:
guslinux a dit:
pour prendre les "paramètres" => nikel mais pour prendre la donnée ... c galère !
tiens.. il me semble que 'jai fait ça sans trop de soucis...
je vais voir mon code et te tiens au courant
Un truc comme toi j'y était arrivé aussi, mais ici j'ai plusieurs <response> :
Code:
<root>
   <line>
      <Societe size="180px" align="">Edoplan</Societe>
      <Groupe size="150px" align="">Service informatique</Groupe>
      <Nom size="100px" align="">Massart</Nom>
      <Prenom size="100px" align="">Hugues</Prenom>
      <Tel size="100px" align="center">...</Tel>
      <GSM size="100px" align="center">...</GSM>
      <Fax size="100px" align="center">...</Fax>
   </line>
   <line>
       .....
   </line>
   <line>
       .....
   </line>
   <line>
       .....
   </line>
   <line>
       .....
   </line>
</root>
Et j'ai un bug bizzare ...

Charger les lignes :
Code:
var x = xmlDoc.getElementsByTagName('root');
	x = x[0].childNodes;
Chose très currieuse : avec FireFox x[0].childNodes.length=15 et avec IE x[1].childNodes.length=7

de meme les élément ne sont pas bien traités sour FireFox ... un truc de fou !!

=> http://devel.edoplan.be/Soft_Gestion/EDT-Contacts/V0/document.html
http://devel.edoplan.be/Soft_Gestion/EDT-Contacts/V0/js/XML.js
 
1er
OP
guslinux

guslinux

Gamerz'ien
et voilaaa
Code:
			if(x[i].childNodes[j].hasChildNodes())
				var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
			else var theData = document.createTextNode(" ");
Mtn ca tourne ... ouff !!!

Au fait, j'ai pas utilisé xmlHttpRequest mais XMLDOM (ca tourne +/- de la meme manière) :
Code:
function importXML(request)
{
	if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = traitement_http;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) traitement_http()
		};
 	}
	else
	{
		alert('Your browser can\'t handle this script');
		return;
	}
	xmlDoc.load(request);
}
 
1er
OP
guslinux

guslinux

Gamerz'ien
Ca y est ca marche :D

La démo ici

Si vous cliquez sur la tete de liste ca trie en fonction du champ cliqué.
1e click = tri A-Z, 2e click = tri Z-A
 

Bingo

Beer Addict
guslinux a dit:
Si vous cliquez sur la tete de liste ca trie en fonction du champ cliqué.
1e click = tri A-Z, 2e click = tri Z-A
Ah ouais sympa !
Il faut vraiment que je m'y mette ! :)
 
1er
OP
guslinux

guslinux

Gamerz'ien
Bingo a dit:
guslinux a dit:
Si vous cliquez sur la tete de liste ca trie en fonction du champ cliqué.
1e click = tri A-Z, 2e click = tri Z-A
Ah ouais sympa !
Il faut vraiment que je m'y mette ! :)
En fait c relativement "bete" j'ai un objet php qui gere les listing et qui est prévu pour tourner avec $_GET & $_POST. Je l'ai modifié pour qu'il me génère un xml, et le xml est traiter via javascript...

Ici j'ai traiter avec le $_GET, mtn faut que je fasse pour le $_POST... j'ai ma petite idée là dessu ^^

Nb : On pourrait meme imaginer avoir une actualisation continuelle des données du listing (toutes les 10secondes par exemple) et avoir une appli se raprochant du real time !!!!!!!!
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut