Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2840 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JQUERY / AJAX Recréer une requête httpRequest avec JQUERY?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JQUERY / AJAX Recréer une requête httpRequest avec JQUERY?

n°2155831
b3rl1go
ch'ob a knekess do
Posté le 06-09-2012 à 10:25:29  profilanswer
 

Bonjour,
N'ayant trouvé de solution à mon problème, je vais donc vous l'exposer ici avec l’espoir d'obtenir votre aide.
 
 
 
1. Le cas présent
 
Pour mes développements nécessitant de l'AJAX, j'utilise depuis des années une fonction simple d'utilisation qui jusqu'à présent ne m'a jamais fait défaut.
L'appel de la fonction se fait généralement via un évènement.
Exemple :  

Code :
  1. <div id="liens" class="lien_actif" onclick="makeRequest('ajax/request_user_info.php?user_id=325&action=edit', 'primary_request');" >Cliquez ici</div>


Elle contient deux paramètres, l'URL et la zone cible ou sera affiché le résultat.
 
La fonction se présente de manière classique :

Code :
  1. function makeRequest(url, cible) {
  2. var httpRequest = false;
  3. [...]
  4. vérification de navigateur et de version
  5. [...]
  6. httpRequest.onreadystatechange = function() { alertContents(httpRequest, cible); };
  7. httpRequest.open('GET', url, true);
  8. httpRequest.send(null);
  9. }
  10. function alertContents(httpRequest, cible) {
  11.   if (httpRequest.readyState == 4) {   
  12.           if (httpRequest.status == 200) {     
  13.    document.getElementById(cible).innerHTML = httpRequest.responseText ;
  14.           } else {   
  15.                alert('Un problème est survenu avec la requête.');   
  16.           }   
  17.      }   
  18. }


J'ai également créé un dérivé pour traiter les requêtes "POST"
Comme dit, tout fonctionne, sauf que...
 
2. Le problème
J'utilise de plus en plus la librairie JQUERY dans mes sites ainsi que d'autres scripts JS divers. Hors, une fois qu'un contenu est passé à la moulinette AJAX, il ne tien plus compte ni n’exécute ces scripts, je pense notamment à JQUERY UI ou à d'autres scripts intervenants sur des formulaires.
Mais je suis encore un gros Noob en JQUERY, alors...
 
3. Un début de solution
A force de recherches, j'ai trouvé des explications mais pas de véritable solution. J'ai compris que jquery .ajax permettait entre autre de lancer des scripts en fin de requête [success si je ne m'abuse?].  
J'ai trouvé beaucoup, peut être trop, d'infos sur les méthodes, mais nul n'aborde la base qui m’intéresse, à savoir ; Comment recréer ma requête AJAX en JQUERY en gardant une utilisation similaire des paramètres (URL, CIBLE).
 
J'ai le début :)

Code :
  1. $(document).ready( function () {
  2.   $("#liens" ).click( function() {
  3.     $.ajax({
  4.       type: "GET",
  5.       url: "Que je récupère comment?",
  6.       data:"Que je récupère comment?" ,
  7.       success: function(msg){
  8.         if(msg==1) // si la connexion en php a fonctionnée
  9.         {
  10.           $("#madiv" ).html("" ); //<= #madiv est-elle l'équivalent de ma zone cible?
  11.         }
  12.         else
  13.         {
  14. }
  15.       }
  16.     });
  17.   }
  18. }


 
Voilà, j'espère avoir posé mon problème aussi compréhensible-ment que possible.
Merci pour votre aide


---------------
http://www.mocpages.com/home.php/7650
mood
Publicité
Posté le 06-09-2012 à 10:25:29  profilanswer
 

n°2155856
Devil'sTig​er
Posté le 06-09-2012 à 13:26:19  profilanswer
 

C'est ca.
 
Dans url tu mets l'url : "ajax/request_user_info.php"
Dans data tu peux mettre :
une chaine de caractères, un objet, un array :
data : {
  user_id : 325,
  action  : "edit"
}
 
Et madiv est bien l'équivalent de la zone cible :
success : function(msg){
  $("#madiv" ).html(msg);
}
 
Voila.


---------------
JunZZi |
n°2155867
b3rl1go
ch'ob a knekess do
Posté le 06-09-2012 à 14:44:20  profilanswer
 

Ok, merci Devil'sTiger. Je suis donc sur la bonne piste.
 
Mais comment faire pour récupérer les données ?  
Dans ma requête initiale elles étaient transmises en paramètres à la fonction, mais là, avec la détection du click sur l’élément qui contient l'id "lien", $("#liens" ).click( function(), je ne sais ni comment inscrire ces paramètres dans ma div, ni par quel méthode les récupérer avec jquery.
 
Comme mon appel de fonction ne sert plus à rien avec JQ, comment je place l'url, les variables et la zone cible au sein de ma div? (ou p, span, tr, td et j'en passe...)
 
<div id="liens" class="lien_actif" title="ajax/request_user_info.php?user_id=325&action=edit" rel="primary_request" >Cliquez ici</div>
ou alors je doit obligatoirement séparer la page de requête de la liste des variables  
 
En JS classique ça me parait tellement évident, mais là je ne capte vraiment pas cette logique pour le moment, et pourtant, il le faudra bien  :sweat:
 
[EDIT]
J'ai trouvé comment récupérer les données mais le script ne passe pas et renvoie le alert('erreur')

Code :
  1. $(document).ready( function () {
  2.   $("div#liens" ).click( function() {
  3. var urlcomplete=($(this).attr("title" ));
  4. var cible=($(this).attr("rel" ));
  5. $.ajax({
  6.    type: "GET",
  7.    url: urlcomplete,
  8.    data: 'cible='+cible,
  9.    success: function(msg){
  10.  if(msg==1)
  11.  {
  12.          alert("ok" );
  13.  }
  14.  else
  15.  {
  16.  alert("erreur" );
  17.  }
  18.    }
  19. });
  20.   return false;
  21.   });
  22. });


Message édité par b3rl1go le 06-09-2012 à 15:54:24

---------------
http://www.mocpages.com/home.php/7650
n°2155883
b3rl1go
ch'ob a knekess do
Posté le 06-09-2012 à 17:06:45  profilanswer
 

Je pense avoir résulo le problème. Pour commencer j'ai supprimé le test
 

Code :
  1. if(msg==1) {
  2.   alert("ok" );
  3. } else {
  4.   alert("erreur" );
  5. }


 
ce qui me donne ça et qui fonctionne
 

Code :
  1. success: function(msg){
  2.   $("#"+cible).html(msg);
  3.   $("#"+cible).css("background", "yellow" );
  4. }


 
La couche graphique JQUERY UI est directement prise en compte :)
Je vais maintenant tester mes autres fonctions et reviendrais fermer le post si en effet je ne rencontre plus de problèmes :)


---------------
http://www.mocpages.com/home.php/7650
n°2156265
b3rl1go
ch'ob a knekess do
Posté le 10-09-2012 à 17:35:14  profilanswer
 

Ca y est !!! J'ai bien cerné les bases de fonctionnement de la fonction .ajax de JQUERY et ai fait ma petite mixture pour gérer GET et POST au sein d'une même requête, J'adore le jquery :)
 
J'ai ce que je souhaitais, une seule fonction pour tout gérer. Je sais qu'elle est perfectible et j'affinerai avec le temps.
 
Par contre, je me pose la question. Est-il possible de faire de l'upload en ajax à partir d'un formulaire multipart/form-data?


---------------
http://www.mocpages.com/home.php/7650
n°2157629
b3rl1go
ch'ob a knekess do
Posté le 21-09-2012 à 14:11:26  profilanswer
 

Ok, j'ai trouvé mes réponses.
 
Le sujet est clôt.
Merci


---------------
http://www.mocpages.com/home.php/7650

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JQUERY / AJAX Recréer une requête httpRequest avec JQUERY?

 

Sujets relatifs
requete imbriqué complexeRequête mysql dans un fichier bash
Requete php sql avec accent : pas de correspondance dans la baseJquery - Copier contenu Span dans TextArea
problème de lancement de mon menu jqueryExclure enregistrements d'une requête MySQL
utilliser un datatable jquery dans application JEEVBS : Connaitre temps de réponse requête HTTP via proxy
Temps d'éxécution requête Oracle Sql trop longueGaleries jquery Ui Tools
Plus de sujets relatifs à : JQUERY / AJAX Recréer une requête httpRequest avec JQUERY?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR