Effectuer des sous requetes AJAX ??

Effectuer des sous requetes AJAX ?? - HTML/CSS - Programmation

Marsh Posté le 27-11-2007 à 19:20:10    

Bonsoir,
 
Je suis face à un probleme qui me tord l'esprit...
Comment effectuer des sous requetes AJAX ??
 
Je m'explique, je voudrai faire quelque chose de la sorte.
 
 
requeteAjax1 (){
 
  requeteAjax2 () {
 
  }    
 
}
 
J'ai essayé en créant un objet XmlHttpRequest pour requeteAjax1 ()
et un autre (différent) pour requeteAjax2 ()
-> cela ne fonctionne pas
 
Pouvez vous m'orienter?
 
Merci,
Bonne soirée


Message édité par dragon38330 le 27-11-2007 à 19:21:18
Reply

Marsh Posté le 27-11-2007 à 19:20:10   

Reply

Marsh Posté le 27-11-2007 à 19:59:21    

yup

Reply

Marsh Posté le 27-11-2007 à 21:37:30    

alo  :hello:

Reply

Marsh Posté le 27-11-2007 à 23:02:45    

C'est pourquoi faire ??
J'veux dire : c'est quoi l'intérêt ??  :pt1cable:


---------------
Fred => http://www.meance.free.fr
Reply

Marsh Posté le 28-11-2007 à 08:18:56    

Alors... Je vais tenter de vous expliquer tout cela...
 
Il s'agit d'une appli web pour une entreprise qui gere le cablage du réseau interne de l'entreprise...
 
On fait des requete sur la base mysql grace a php... des ligne s'affiche.
 
Dans ses lignes s'affiche particulierement les l'identifiant de cable ethernet ( en effet ils sont nommé avec un petite etiquette du type XXXX ).
 
Pour avoir de l'ergonomie, j'ai mit en place un systeme de modification "inline" ( note inline: Double click sur le cable, un champ de texte apparait > on modifie la valeur > lorsque l'on sort du champ on appel une page php (grace à l'ajax) pour insérer la nouvelle valeur dans mysql ).Un exemple ici :http://olance.developpez.com/artic [...] e/exemple/
 
Il faut savoir que chaque numéro de cable doit etre UNIQUE dans la base. (Note: le champ des cables dans la base n'est pas unique, il peut donc avoir des "doublon", et c'est le cas).
 
Dans mon cas:
 
Je double click sur le champs > je modifie la valeur par un cable qui est "libre" > tout marche bien, mysql prend bien la modif en compte ( grace à l'appel de ma page php qui fait le boulot)
 
Mon probleme se pose ici, je voudrai avoir ceci:
 
Je double click sur le champs > je modifie la valeur par un cable qui existe deja dans la base > Une boite de dialogue  s'affiche pour me demander "Etes vous sur d'éffectuer la modification?"
 
Si je click annuler: on ne fait rien (ce oint la ne me pose pas de probleme)
 
Si je click OK la modif doit pouvoir s'éffectuée. Par conséquent une nouvelle requete vers la page php doit etre effectuée (= une requete Ajax).
 
Le probleme c'est que lorsque l'utilisateur intervien sur la boite de dialogue, nous somme deja une une requete ajax, et une sous requete ajax dans le "XHR.readyState == 4" ne fonctionne pas. (je mi prend mal peut etre)
 

Code :
  1. if (XHR.readyState == 4){
  2.   if(XHR.responseText != ''){ // la page php retourne une erreur: Le cable entré existe
  3.     if (confirm ('Etes vous sur de vouloir modifier la valeur par un cable qui existe deja?')) {
  4.        //L'utilisateur force l'insertion, Il faudrai envoyer une nouvelle requete AJAX qui appel a nouveau
  5.        //une nouvelle requete AJAX qui appel a nouveau
  6.        //la page php pour inserer la valeur forcée, SI Vous avez une idée pour cela.....
  7.                                            
  8.     }else {
  9.       //On ne fait rien
  10.     }
  11.   }
  12. }


   
 
 
 
 
Je vous remercie de votre aide....,
Thomas


Message édité par dragon38330 le 28-11-2007 à 08:24:10
Reply

Marsh Posté le 28-11-2007 à 09:37:08    

Personnelment, je ferais autrement... :
- doublle click sur la valeur et modification
=> boite javascript de modification
=> Si "oui" alors
        - appel du script PHP en AJAX
        - Gère le traitement de l'insertion avec retour OK ou KO (+ cause) si erreur
        - Récupération du retour dans AJAX
             Si "erreur"
                 - remettre ancienne valeur et indiquer l'erreur (boîte de dialogue javascript)
 
Je pense que tu n'as besoin que d'un appel AJAX, c'est lors du reour de cet appel qu'il faut savoir traiter les différentes erreurs...


---------------
Fred => http://www.meance.free.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed