begin process at 2012 02 11 04:53:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > AJAX : LIBRAIRIE SIMPLIFIÉE PERMETTANT EN 1 LIGNE DE FAIRE DES REQUETES

AJAX : LIBRAIRIE SIMPLIFIÉE PERMETTANT EN 1 LIGNE DE FAIRE DES REQUETES


 Information sur la source

Note :
8,25 / 10 - par 8 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :ajax, requete, dynamique, xml Niveau :Débutant Date de création :25/09/2006 Date de mise à jour :09/06/2007 01:22:48 Vu / téléchargé :19 765 / 2 727

Auteur : rubiks10

Ecrire un message privé
Commentaire sur cette source (34)
Ajouter un commentaire et/ou une note

 Description

Ma librairie Ajax permet en 1 ligne de code d'envoyer des requetes avec les options que l'on veut!!!
Et tout ca très simplement sans prise de tete pour comprendre comment utiliser ma classe Ajax.

De nombreuses librairies pour simplifier l'utilisation d'Ajax existent déjà sur le net mais on se retrouve a chaque fois avec des surprises lorsque l'on tente de les utiliser... ( aucunes explications lors des erreurs, manque de commentaires... etc )

C'est pourquoi je vous propose cette classe Ajax vraiment très simple et complète
Le code est abondamment commentée afin de tout comprendre, puis vous trouverez dans le zip un exemple rapide.

PHP est obligatoire!!!!!


 Conclusion

Merci de laisser vos commentaires si jamais vous avez un problème d'utilisation afin de me permettre de rectifier les eventuels problèmes résiduels
Merci encore pour vos commentaires et vos avis

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 octobre 2006 01:05:01 :
Correction du bug de l'envoi de requete avec parametres en GET Correction du bug de lancement de requetes AJAX en meme temps
09 juin 2007 00:54:53 :
Correction des commentaires dans le fichier javascript qui indiquait des paramètres non utilisés. (rien de méchant)
09 juin 2007 01:22:48 :
Nouvelle indentation du code (je sais pas pourquoi il y avait cette ancienne indentation d'ailleurs...); Ajout de l'objet Ajax en paramètre aux fonctions onSuccess et onError => onSuccess: function(xhr) { ... } les réponses sont donc atteignables par xhr.responseText et xhr.responseXML;

 Sources du même auteur

Source avec Zip LIBRAIRIE AUTOCOMPLETION (AJAX OU LOCAL, CHOIX D'EFFETS, ENT...
Source avec Zip MENU CONTEXTUEL PERSONNALISABLE POUR CLIC DROIT
Source avec Zip MENU CONTEXTUEL PERSONNALISABLE AVEC CHOIX D'IMAGES
Source avec Zip RECHERCHE AVEC AUTOCOMPLETION AJAX ( AVEC NAVIGATION CLAVIER...
Source avec Zip LIBRAIRIE UTF8 (CODAGE ET DECODAGE À LA VOLÉE )

 Sources de la même categorie

COLONNES ADAPTABLES EN HAUTEUR par dronoide
Source avec Zip VECTEURS ET MATRICES: OUTILS GRAPHIQUES UTILES par william voirol
Source avec Zip Source avec une capture HTML5 PLAYER par kazma
Source avec Zip Source avec une capture SCROLLBAR PERSONNALISABLE par kazma
Source avec Zip INFO BULLE par RudiRatlos

 Sources en rapport avec celle ci

Source avec Zip DEUX MENU DÉROULANT LE PREMIER GÉNÈRE LE DEUXIÈME MENU par hakimastouri
Source avec Zip Source avec une capture ALBUM PHOTO AVEC PARTIE ADMINISTRATION - PHP + AJAX + XML par tinokoxx
Source avec Zip Source avec une capture GALERIE PHOTO AVEC MENU RUBAN par JeMi
Source avec Zip Source avec une capture GESTION DE CONTROLE DE FORMULAIRE OU DONNÉES CENTRALISÉ. par apxa
Source avec Zip LIBRAIRIE AUTOCOMPLETION (AJAX OU LOCAL, CHOIX D'EFFETS, ENT... par rubiks10

Commentaires et avis

Commentaire de stailer le 26/09/2006 23:47:14

Ton système est pas mal, mais basique.
Objectivement il existe de très bonnes classes php pour Ajax: Najax (sur phpclasses.org) , Sajax ou encore Xajax. Le gros avantages est que tu peux appeller les méthode d'une classe php avec le même nom depuis le javascript.
Et elles marchent très bien. Notamment Najax que j'ai utilisé en profondeur et avec lequel j'ai eu aucun souci particulier. Dans ton cas on doit utiliser des fichiers externes...
Bref, c'est quand même pas mal, et tu simplifies également pas mal les choses. Alors 7/10

Commentaire de rubiks10 le 27/09/2006 23:33:40

Oui Stailer en fait le but de ma librairie etait de réduire au minimum le code car en fait on se retrouve souvent avec des centaines de lignes de codes provenant d'une librairie alors que l'on va en utiliser qu'une dizaine...

Et la plupart du temps les débutants en Ajax lachent vite l'affaire en essayant de comprendre comment utiliser les librairies " mega " completes.

Donc j'ai en fait programmé une librairie Ajax pour débutant pour qu'ils comprenent le fonctionnement grace a l'abondance des commentaires et a la petite masse de code qui ne va pas " démoraliser " les newbies...

Voila voila mais je suis entierement d'accord avec toi qu'il existe des librairies vraiment completes !!! Mais a part dans des projets gigantesques et vraiment complexes l'intégralité des methodes définies n'est jamais utilisée

Voila voila. Merci encore pour ton commentaire
--The Rubik's Man--

Commentaire de younes371 le 04/10/2006 13:32:48

Bonjour,
c ets un bon code, si possible je ve que lorsque l'utilisateur tape un texte ds une zone de texte, le contenue de la zone s'enregistre dans la base de données.
Merci.

Commentaire de rubiks10 le 04/10/2006 18:14:24

Salut Younes

en fait j'ai pas trop compris ce que tu demandes...
Tu veux que je te fasse un script qui fait quoi exactement??

- que lorsque a chaque touche appuyée dans un textarea le contenu soit enregistré dans une table d'une base de données ??

c'est bien ca??

Commentaire de younes371 le 04/10/2006 18:58:22

Bonjour,
Oui exactement ça,


Commentaire de younes371 le 04/10/2006 19:01:13

on prend l exemple qu on a plusieurs zone de tenxte (4 par exemple). si on modifie le texte d'une zone, on modifie aussi son contenue ds la BD.
juste une idée:
et meme si on ve aller plus lion, si les 4 zones sont remplies une nouvelle zone apparâtaire.
Merci Bcp

Commentaire de rubiks10 le 06/10/2006 21:55:30

Ok younes... par contre je vois pa pourquoi tu demandes ca ici... car mon module d'autocompletion n'a rien a voir a ce que tu veux toi.

Et puis aussi sache que le contenu des textarea est illimité.

Pour ton exemple tu vas voir dans mes sources sur ce site et tu télécharge ma librairie AJAX, ensuite tu codes un fichier en php ou autre langage serveur qui te permet de recevoir le contenu des textarea et de l'enregistrer dynamiquement sur la base.

Voila mais je te le dis encore ta question n'a rien a voir avec l'autocompletion

bonne prog

-- The Rubik's Man --

Commentaire de younes371 le 06/10/2006 23:28:15

Merci pour ton aide

Commentaire de paulfillit le 13/11/2006 13:12:25

Bonjour,

Merci pour ce code qui m’a permis de me rendre compte des possibilités d’AJAX associés au PHP. J’ai pu ainsi réaliser un script qui lance plusieurs process et renseigne un bdd.

Le seul souci qu’il me reste est de pouvoir savoir quand toutes les recherches sont finie afin d’afficher une page de résultat (lecture de ma table rensigné).

Je voulais m’inspirer de la fonction « debug » qui renvoi en fait n’importe quel texte affiché dans le script appelé…

Y aurait-il un moyen de renseigner un flux xml ou un (tableau du type $Resultat[‘mapage’]=’OK’ ); afin que je puisse faire une boucle « while » ( en prévoyant un Timout) ?

J’espère que je n’ai pas été trop flou…

Merci pour vos réponses,

Commentaire de olid le 22/11/2006 19:21:50

Si le système de vote de CS n'était pas planté, j'aurais mis 10.

Trés bonne source qui correspond parfaite à son titre, bien commenté, lègère, et donc parfaite quand on veut juste faire une requête en AJAX comme pour les tests de validité d'un formulaire (mail,login,password).

Par contre, l'exemple n'est pas trés convaincant, fodrait qqch de plus "spectaculaire" ;op

Commentaire de JLN le 30/04/2007 11:35:18

Bonjour,
     Encore une fois un très bon code qui servira ceux qui n'y connaissent rien (ou presque) en ajax. Et je suis d'accord avec toi pour dire que les librairies fastidieuse ne servent qu'en partie quelques fois à peine 10%. Alors que là on a affaire à de l'utilisable tout de suite et sans contrainte, et ceux qui comme moi maitrise un peu le php et presque pas le javascript c'est plus simple. Je met 10 pour encourager à aider les plus faible (j'en fais partie).

Bonne prog à tous...
@+ JLN

Commentaire de m3919 le 08/06/2007 13:59:19

bonjour,
j'essai d'utiliser ta librairie à partir de ton fichier d'exemple.
lors de l'appel de la fonction, je veux utiliser successEnd:
new Ajax_request('./testXML.php',{method:'post',successEnd: sucXML, params:'param1=true&param2=false'});
Mais avec la syntaxe ci-dessus, cela ne semble pas fonctionner, car j'ai l'affichage DEBUGSUCCESSMESSAGE qui apparait
si tu avais le temps de m'expliquer, merci

Commentaire de rubiks10 le 09/06/2007 00:53:32

Salut m3919

Oui c'est normal j'avais fais une erreur dans la documentation... les paramètres à utiliser sont en fait :
"onSuccess" au lieu de "successEnd", "onError" au lieu de "errorEnd" ou pour les paramètres "params" au lieu de "paramString"

J'ai mis à jour la source (le code est inchangé, seulement les commentaires sont mis a jour)
Merci bien de m'avoir indiqué cette erreur.

@+

Commentaire de m3919 le 11/06/2007 19:08:25

bonjour,
merci pour le temps que tu as pris pour corriger et adapter ton code et l'exemple d'utilisation qui m'a bien aidé. Et pour abuser de ton temps j'ai une autre question.
Peut-on passer des variables comme parametre c'est a dire faire qql
du style:
var chaine= "bonjour"
....
new Ajax_request('./testHTML.php',{method:'get',params:'param1=chaine&param2=false'});
merci,
A+

Commentaire de rubiks10 le 11/06/2007 20:44:09

re m3919

Je sais pas si toi par contre tu as pris le temps de comprendre le fonctionnement de ma source...

C'est pourtant explicite !! tu remplaces les param1=chaine etc... par les paramètres que tu veux
en reprenant ton exemple :

new Ajax_request('./testHTML.php',{method:'get',params:'chaine=bonjour'});

ou

new Ajax_request('./testHTML.php',{method:'get',params:'chaine='+chaine}); (si tu veux que le paramètre soit dynamique.

Voilà
@++

Commentaire de overstone le 18/07/2007 12:47:36

Bonjour,

Je bloque depuis 5 jours sur comment faire pour supprimer une fiche d'une table Mysql en passant par AJAX pour ne pas recharger la page.

Mon code fonctionne à merveille en php avec ce lien : <a href="include/supprimer.php?date=<?php echo $donnees['date']; ?>
Mais malgré ton tuto je n'arrive pas à comprendre le passage par AJAX pour faire strictement la même chose sans devoir recharger la page. ????

Commentaire de rubiks10 le 20/07/2007 02:28:08

Salut Overstone

Remplace ton lien : <a href="include/supprimer.php?date=<?php echo $donnees['date']; ?>

par : <a href="#" onclick="new Ajax_request('include/supprimer.php',{method:'get',params:'date=<?php echo $donnees['date']; ?>',onSuccess:function(){}});return false;"> blablabla </a>

voila quand tu cliques sur le lien (même si apparemment rien ne se passe) ta fiche est supprimée dynamiquement

@+

Commentaire de olid le 20/07/2007 10:13:45

rubiks10, si tu es bien l'auteur de cette source, donne une URL de ton blog ou site perso pour te faire un peu de pub sur life2front.com dont les profils LiFE-Line utilisent ta lib :o)

Ya pô un update de prévu ? ... Sinon, j'pense la ré-écrire/organiser pour pour mes besoins futurs.

NB: lesscripts de compression JS abime ta lib :o(

Commentaire de sambucus le 14/08/2007 07:02:51

Bonjour,

J'ai une erreur 405 méthode non autorisée :

http://blogdelaureminervois.free.fr/grandesfamilles/

Suivre l'arborescence :

Lauran Cabaret
l'ouvrage
heresie

Alors qu'en local cela fonctionne ainsi que votre exemple fonctionne en ligne ?

Si non cela semble efficace et pratique.

Merci,

Salutations

Commentaire de paulux1 le 17/08/2007 10:15:40

Bonjour Rubik10,

J'utilise ta classe pour effectuer plusieurs requêtes simultanées. Ca fonctionne super. En revanche, je souhaiterais récupérer la valeur contenue dans une variable de session ($_session[....]) qui évolue en fonction des différents résultats de recherche effectués. Y a-t-il un moyen pour récupérer cette valeur au lieu de récupérer le texte d'une page?

Merci,

Commentaire de olid le 27/09/2007 10:54:28

Attention, il y a de gros risques de confusion quand on fait plusieurs requêtes simultanées en mode asynchrone. Et aussi un souci d'affection de la classe dans des variables globales depuis des fonctions.

Pour résoudre ces problèmes, j'ai fait les modifs ci-dessous dans la fonction finalize() pour passer les resultats comme argument des fonctions associées à la requête.

if ( this.Ajax_object.status == 200 )  this.properties['successEnd'](this.Ajax_object.responseText,this.Ajax_object.responseXML);
else
this.properties['errorEnd'](this.Ajax_object.status);

Commentaire de olid le 27/09/2007 11:03:54

Oups désolé, j'étais pas au courant de l'update de Juin qui corrige les problèmes que je viens d'énoncer...

Commentaire de masternico le 28/10/2007 22:27:56 9/10

Salut rubiks10,
alors voila, ta source ma résolue 4h de devellopement. Grosso-modo, je partais dans la même direction, mais je n'ai pas réussi à faire le truc avec la fonction .bind(). En fait, j'était bloqué à cause de ce petit "bug" qui faisait qu'il métait impossible d'accéder à mon objet au sein de ma function branchée sur onreadystatechange. Du coup, je te pique ton code qui est plus aboutis.
Par contre, j'avais résolu un autre bug qui existe dans ta librairie.

Sous IE, tout marche nickel, par contre, sous FF, le modesynchrone ne fonctionne pas. Il semblerais que ce soit un bug de FF.

La solution trouvée est de rajouter un test juste apres l'instruction send().
Ca donne ça:

        processRequest: function() {
                this.Ajax_object.open(
                        this.properties['method'],
                        this.properties['method'] == 'post' ?
                                this.properties['url'] : this.properties['url']+this.properties['paramString'],
                        this.properties['async']
                );
                if ( this.properties['method'] == 'post' )
                        this.Ajax_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                this.Ajax_object.send(this.properties['method'] == 'post' ? this.properties['paramString'] : null);
//////////////répétition du code de la function setReadyProcess()
                if(this.properties['async'] == false){
                        if (this.Ajax_object.readyState == 4 ) {
                                responseText = this.Ajax_object.responseText;
                                responseXML = this.Ajax_object.responseXML;
                                this.responseText = this.Ajax_object.responseText;
                                this.responseXML = this.Ajax_object.responseXML;
                                if ( this.Ajax_object.status == 200 ) this.properties['successEnd'](this.Ajax_object);
                                else this.properties['errorEnd'](this.Ajax_object);
                        }
                }

        }


et là, ça fonctionne.
En tout cas, bon boulot: 9/10

Commentaire de masternico le 28/10/2007 22:50:45

En fait, on peut faire plus propre:

dans 'request':
                if ( typeof(url) != 'string' ) {
                        alert('url de format invalide ( l\'url est obligatoire )');
                        return;
                }
                else this.properties['url'] = url;

                this.setReadyProcess();
                this.processRequest();
mettre:

                if ( typeof(url) != 'string' ) {
                        alert('url de format invalide ( l\'url est obligatoire )');
                        return;
                }
                else this.properties['url'] = url;

                if(this.properties['async'] == true){   //branchement seulement si asynch
                        this.setReadyProcess();
                }
                this.processRequest();

//////////////////////
//////////////////////

Dans 'processequest':

                if ( this.properties['method'] == 'post' )
                        this.Ajax_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                this.Ajax_object.send(this.properties['method'] == 'post' ? this.properties['paramString'] : null);

mettre:

                if ( this.properties['method'] == 'post' )
                        this.Ajax_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                this.Ajax_object.send(this.properties['method'] == 'post' ? this.properties['paramString'] : null);
                if(this.properties['async'] == false){        // correction pour le bug de FireFox
                        this.processResult();
                }

///////////////////////
//////////////////////

        setReadyProcess: function() {
                this.Ajax_object.onreadystatechange = function() {
                        this.processResult();
                }.bind(this);
        },

////////////////////////////////
////////////////////////////////
enfin, ajouter:

        /**
          *             Fonction permettant d'enregistrer les fonctions executees lors du succes ou d'une erreur
          */
        processResult: function() {
                if (this.Ajax_object.readyState == 4 ) {
                        responseText = this.Ajax_object.responseText;
                        responseXML = this.Ajax_object.responseXML;
                        this.responseText = this.Ajax_object.responseText;
                        this.responseXML = this.Ajax_object.responseXML;
                        if ( this.Ajax_object.status == 200 ) this.properties['successEnd'](this.Ajax_object);
                        else this.properties['errorEnd'](this.Ajax_object);
                }
        },


Commentaire de olid le 15/12/2007 16:10:38

Nouveau défi: j'ai besoin de régler un délais pour les requetes, et de recevoir un code d'erreur spécial quand le délais est dépassé.

J'etudie çà ce weekend ;o)

Commentaire de Disicom le 18/12/2007 18:07:13

Bon boulot en tout cas !

Commentaire de chang93 le 13/03/2008 12:09:51

Pas mal pour débuter avec ajax, donc 8/10

Commentaire de laquiche31 le 27/08/2008 09:25:47

bonjour,

Je cherche le moyen de faire passé un parametre a la fonction executée en cas de succes.
mais je bug puisque pour nommé cette fonction on ne met pas les parenteses onSucces:fonction, donc ou peut-on faire passer ces parametres.
merci

Commentaire de olid le 27/08/2008 12:54:06

@Laquiche: pas dur...

Le plus simple ; fais passer le parametre dans l'URL du script de ta requete. Dans celui-ci, recupere le en mode GET. Puis, insére ces parametres dans le resultat JSON (ou XML) que ton script doit renvoyer ;o)

Le mieux ; indique les parametres via "paramString" et definit la "method" en POST.

Commentaire de laquiche31 le 27/08/2008 13:27:45

ca marche merci

Commentaire de lanner le 06/12/2009 13:20:44 9/10

Bonjour , cette source est un peu vieille mais bon je relance quand même on sait jamais

Je fait une requete en boucle pour afficher des fiches avec un status 0
Dans chaque fiches il y a une petite case qui met une image rouge , si je click c passe au vert
J'ai donc placé le div > <div id=target> .. </div> à cet endroit,
La page d'appel contient la requete qui fait en sorte de basculer en vert

Jusque la tout marche , mais le soucis est le suivant
Si je clic dans la premiere fiche cela bascule en vert
Si je clic sur la 2eme fiche cela ne change pas , il veux changer le contenu uniquement de la premiere fiche comme si le <div id=target> de la première fiche ets le référant

Question maintenant : comment modifier le code pour ajouter un numéro au div , par exemple en prenant l'id de chaque fiche : <div id=target1> .. <div id=target2>

J'ai tenté de faire <div id=target<?=$_data['id']?>> et de modifier les functions mais cela ne fonctionne pas

Si quelqu'un aurait une solution (ou une source) merci d'avance :)

Commentaire de lanner le 06/12/2009 16:23:00

En fait j'ai réussi, le soucis maintenant consisterai à raffraichir la page initial une fois le click fait :)

Commentaire de dadav51100 le 26/02/2010 11:11:27 10/10

ton source m'a beaucoup aider merci ^^

Commentaire de lanner le 13/04/2011 23:39:26

Salut à tous :)

Je viens de faire un test sur un hebergement avec :
Apache/1.3.42 (Unix) PHP/5.3.5 with Suhosin-Patch
Version du client MySQL: 5.1.55
Est cela n'affiche pas la lecture du fichier (par contre il execute le contenu) je place du texte ou des images pour qu'il affiche l'info et la rien

Si quelqu'un a une idée, merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Recuperer des valeurs d'un formulaire pour creer une requete mysql [ par Ze_lola ] Bonjour a tous! Alors voila j'ai un petit problème concernant ajax:il faut que je recupere des valeurs d'un formulaire et que je les réincjecte dans u "ajax" et probléme de rafraichissement [ par matheo54 ] Bonjour a tous ( ou bonsoir )Je vous souhaite pour commencer a tous et a toutes une bonne et heureuse année 2007.Ensuite, j'aurais un ti conseil à vou Formulaire dynamique [ par alphacrash ] Salut à tous, je vous explique mon problème :Je récupère le contenu d'une chaîne, par exemple celle-ci :$chaine="&lt;html&gt;&lt;body&gt;&lt;input typ FireFox 3 + Ajax = bug ? [ par rhan_659 ] Bonjour à tous Je suis face à un bug désopilant, un code en ajax qui fonctionne sous FF2 mais pas sous FF3 voila le code que j'utilise requete = Vérification de la bonne exécution d'une requete ajax avant unload [ par chiktika ] Bonjour,tout est dans le titre mais je vais détailler un peu :Au moment de quitter la page html, je dois faire des enregistrements ds une table mysql Patienter pendant une requete Ajax [ par deterred ] Bonjour, J'ai une grosse requete Ajax a executer, et le chargement est long. Je voudrais mettre à la place de mon compteur de résultat un message du g Utilisation XML dans AJAX [ par Samyghan ] Bonjour , alors voilà, j'ai un problème lors du traitement d'un retour d'une requête (en XML) généré par Prototype.J'ai deux pages : ajax.html (qui ut onunload: attendre la fin d'un echange ajax avnt de fermer la fenêtre? [ par trygelin ] Afin de fermer une session, lors de changement de page, ou fermeture du navigateur je souhaite déclencher une requete AJAX: j'ai écrit la procédure ai Problème Parser XML Ajax sous Safari/Chrome [ par ju0123456789 ] Bonjour, Je rencontre un problème de parser XML dans une requete Ajax sous le navigateur Safari (Idem sous chrome). Je m'explique, la requete Ajax (


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,512 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales