IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Comment utiliser AJAX


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut [AJAX] Comment utiliser AJAX
    voila j'ai un tableau et je voudrais que pour chaque cochage ou decochage s'excute une requete SQL
    on m'a dit qu'il fallait que j'utilise AJAX mais je n'y connais rien
    voici mon tableau


    si quelqu'un peut m'aider ça serait cool

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    qui peut t'aider si tu viens ici en disant "je n'y connais rien"? un tutoriel consacré à ajax, non?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    merci pour le tuto mais ça m'explique pas grand chose comment faire mon truc pour que lorsqu'on clic sur une checkbox (cochacge ou decochage) ça execute une requete sql c'est un dire un Update.
    si c'est un cochage ça met la valeur à 'O' sinon si c'est un décochage ça met la valeur à 'N'

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    l'idée, c'est que tu va appeler AJAX en lui passant les bons paramètres avec un évènement onclick sur chacune de tes checkbox.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    l'idée c'est ça et qu'elle puisse rafraichir la page .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    Si tu n'y connais rien ou presque.. ajax c'est populaire, mais ptet pas le plus simple a apprehender !

    Enfin bref, ca c'est toi qui voit..

    Deja t'as besoin d'un script php ou autre, qui fasse la requete sur ta base et te renvoye un message ok ou erreur, par exemple..

    Apres, pour appeller ton script php, tu utilises une fonction js dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }

    cette fonction tu l'appelles comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte = file('/V2_mysql/ajax/VerifClient.php?client='+escape(client))
    Ici, c'est un script php VerifClient.php et un parametre client, et le retour sera contenu dans ta variable texte

    apres, tu affiches ta variable texte ou tu la teste pour voir si le retour est ok.. et voila tout !

    Ah oui, et pour appeller l'evenement quand on clique une checkbox...

    a+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    merci pour les infos mais le petit hic c'est que je ne change pas de page je reste toujours sur la meme.
    En fait ce que je voudrais faire c'est lorsque je coche ou décoche la checkbox ça execute le update derrière et que ma page ce rafraichit
    voila mais merci pour le début du code ça va m'aider et il me rest plus qu'a faire la fonction par rapport à la checkbox

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    tout l'interet d'ajax est que la page n'est pas rechargée, justement !!!
    Un simple bouton submit, un script php pour l'update et pas besoin d'ajax ! Pourquoi faire compliqué.....

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    comment faire alors utiliser AJAX ou pas
    car mon tableau est créé par un select donc j'ai a peu près 400 lignes dans le tableau et pour chaque colonne mes checkbox ont le meme nom car c'est une boucle qui parcours la requete et qui affiche le résultat

    voici le code pour une checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($result[$i]->PDG == 'O')
       echo '<td><input type="checkbox" name="pdg" value="PDG'.$result[$i]->client_id.'" CHECKED /></td>'."\n\t";
    else
       echo '<td><input type="checkbox" name="pdg" value="PDG'.$result[$i]->client_id.'" /></td>'."\n\t";

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    ben oui, mais comment veux tu faire un update si tes checkbox ont toutes le meme nom ???
    Tu pourrais les nommer Mycheckbox[id] ou l'id est l'identifiant de la ligne sql.. ou que sais-je.. mais la, tu as un probleme de conception

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    ben faut que le name comporte l'identifiant .. ou un moyent de retrouver a quoi il correspond, sinon, je ne vois pas comment tu peux faire !

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    ok mes checkboxs sont différenciées par le numéro du contact et après comment faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($result[$i]->PDG == 'O')
       echo '<td><input type="checkbox" name="pdg'.$result[$i]->client_id.'" value="PDG" CHECKED /></td>'."\n\t";
    else
       echo '<td><input type="checkbox" name="pdg'.$result[$i]->client_id.'" value="PDG" /></td>'."\n\t";
    mais je suis obligé que le name de la checkbox comporte le numéro de la ligne !!!
    car sur une ligne il y a 8 checkbox qui ont un nom différents

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    voici mon code partie ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    		function getXhr(){
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
    			}
    			function go(){
    				getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","updatecli.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id du client
    				sel = document.getElementById('cli');
    				idcli = sel.options[sel.selectedIndex].value;
    				xhr.send("idcli="+idcli);
    			}
    mais j'ai un problème car pour récupérer l'id du client le nom change a chaque ligne commetn faire ?
    voici mon code partie update.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
        require_once("classes/Connexion.class.php");   //Importation du fichier pour la Connexion
        require_once("fonctions/templates.php");
        require_once("fonctions/fonction.php");
     
              if(isset($_POST['idcli'])){
                if(isset($_POST['pdg']))
                    $pdg='O';
                else
                    $pdg='N';
              
                    $connexion = new Connexion();
                    $req = "UPDATE clients SET PDG='$pdg' ,DT= ,SECRETARIAT= ,RESP_MAINT= ,RESP_ESS= ,RESP_INFO= ,OPERATEURS= ,EQUIP_MAINT= where client_id='.$_POST['id']).'";
                    $res = $connexion->update($req);
                    $connexion->close();
        }
    ?>

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 294
    Points : 58
    Points
    58
    Par défaut
    si je donne un nom différent à chaque checkbox comment pour savoir quel est la bonne checkbox par rapport à l'execution de la requete

    ou alors j'appel les checkbox pareil dans la meme colonne avec en plus le numéro du contact

    comment faire pour récupérer le nom de la checkbox que je viens de cliquer ou sélectionner?

  15. #15
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Points : 220
    Points
    220
    Par défaut
    en faisant un truc genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="javascript:maFonction(this)"
    comme ca tu as ton objet dans javascript et dc tu sais son id

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2016, 14h27
  2. [Prototype] Comment utiliser ajax.updater() ?
    Par Derbie dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 28/04/2011, 10h18
  3. Comment utilise ton l'Ajax de jquery
    Par Invité dans le forum jQuery
    Réponses: 2
    Dernier message: 31/01/2011, 22h39
  4. comment utiliser ajax dans un projet web ?
    Par chan_hic dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 25/05/2009, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo