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] Aide php + javascrispt svp


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut [AJAX] Aide php + javascrispt svp
    Bonjour :
    Code php : 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
    37
    38
    39
    <?PHP
    		while($row = mysql_fetch_row($res))
    			{
    				$item_key = $row[0];
    				$item_Etablissement = $row[1];
    				$item_Sex = $row[2];
    				$item_Nom = $row[3];
    				$item_Nom_jeune_fille = $row[4];
    				$item_Prenom = $row[5];
    				$item_Tel_bureau = $row[8];
    				$item_Adr_prof = $row[9];
    				$item_Bureau_distrib = $row[14];
    				$item_Date_entre_ent = $row[15];
    				$item_Autorise = $row[16];
     
    				print("<TD>$item_Etablissement</TD>\n");
    				print("<TD align=\"Center\">$item_Sex</TD>\n");
    				print("<TD>$item_Nom</TD>\n");
    				print("<TD>$item_Nom_jeune_fille</TD>\n");
    				print("<TD>$item_Prenom </TD>\n");
    				print("<TD align=\"Center\">$item_Tel_bureau</TD>\n");
    				print("<TD>$item_Adr_prof</TD>\n");
    				print("<TD align=\"Center\">$item_Bureau_distrib</TD>\n");	
                    print("<script type=\"text/javascript\" src=\"_scripts/desauto.js\"></script>");
    				if ($item_Autorise == "O")			
    				{	
    					print("<TD align=\"Center\"> ");
    					print("<SPAN id=\"etat\"><A HREF =\"#\"/><input type=\"hidden\" name=\"autorise\" value=$item_key id=\"autorise\"><img src=\"_pics/chek.png\" border=\"0\" alt=\"oui\" title=\"L 'utilisateur $item_Nom est validé\" onclick=\"changeEtat()\"/></a></span></TD>\n");
    				}
    				else
    				{	
    					print("<TD align=\"Center\">");
    					print("<SPAN id=\"etat\"><img src=\"_pics/faux.png\" border=\"0\" alt=\"non\" title=\"L'utilisateur $item_Nom n'est pas validé \" /></TD></SPAN>");
    				}
    				print("<TD align=\"Center\">$item_key</TD>");
    				print("<input type=\"hidden\" name=\"pouet\" value=\"pouet\">");
    				print("</TR>\n");
     
    			}

    La partie qui 'minteresse est la suivante :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    print("<SPAN id=\"etat\"><A HREF =\"#\"/><input type=\"hidden\" name=\"autorise\" value=$item_key id=\"autorise\"><img src=\"_pics/chek.png\" border=\"0\" alt=\"oui\" title=\"L 'utilisateur $item_Nom est validé\" onclick=\"changeEtat()\"/></a></span></TD>\n");

    Enfin mon .js :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    function getXMLHTTP()
    {
      var requete=null;
      if(window.XMLHttpRequest) // Firefox et autres
      requete = new XMLHttpRequest();
      else if(window.ActiveXObject){ // Internet Explorer
        try {
          requete = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            requete = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e1) {
            requete = null;
          }
        }
      }
      else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      }
      return requete;
    }
     
    function changeEtat()
    {
     var test = document.getElementById(autorise).value;
     alert(test);
    }
     
    function actualiserPage() 
    {
         if (requete.readyState == 4) 
    	 {
           /* Obtenir la réponse du serveur */
           var etat = requete.responseText;
     
           /* Mettre à jour le formulaire */
           document.getElementById("etat").value =
             etat ;
         }
    }
    /*var autorise = document.getElementById($item_key).value;
         var url = "autorise.php?=" +$item_key
                   escape($item_key);
         requete.open("GET", url, true);
         requete.onreadystatechange = actualiserPage;
         requete.send(null);*/
    Actuellemnt à l'etat de test je ne sais pas si mon code est correcte ou completement a coter de la plaque, mais quand je clique sur le lien je n'arrive pas avoir un "alert" il me dit : "OBJET REQUIS" et sa en reste la ....
    Je suis bloqué aider moi SVP.
    Coridalment
    Nico

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function changeEtat()
    {
     var test = document.getElementById(autorise).value;
     alert(test);
    }
    ton il n'y a pas d' ID "autorise", mais seulement un name.
    De plus, quant tu auras ajouté l'ID, il faudra l'entourer de ' ' dans l'appel de la fonction ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Merci,

    En effet le simple fait d'avoir rajouter les ' ' m'a permis de voir mon alert s'afficher ....

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Oups : j'ai béguayé ....
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par javaboy
    En effet le simple fait d'avoir rajouter les ' ' m'a permis de voir mon alert s'afficher ....
    Ajoute quand même l' ID sinon ça ne fonctionnera que sous IE

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Qu'est ce que tu entends par Id j'en ai déja mis il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"hidden\" name=\"autorise\" value=\'$item_key\' id=\"autorise\">
    C'est bien de cela qu'on parle ?

    Merci encore

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Mon code fonctionne plus ou moins je m'explique :
    Code php : 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
    while($row = mysql_fetch_row($res))
    			{
    				$item_key = $row[0];
    				$item_Etablissement = $row[1];
    				$item_Sex = $row[2];
    				$item_Nom = $row[3];
    				$item_Nom_jeune_fille = $row[4];
    				$item_Prenom = $row[5];
    				$item_Tel_bureau = $row[8];
    				$item_Adr_prof = $row[9];
    				$item_Bureau_distrib = $row[14];
    				$item_Date_entre_ent = $row[15];
    				$item_Autorise = $row[16];
    			// [...]				
    				if ($item_Autorise == "O")			
    				{	
    					print("<TD align=\"Center\">");
    					print("<SPAN id=\"etat\">");
    					print("<A HREF =\"#\"/><input type=\"text\" name=\"autorise\" value=\"$item_key\" id=\"autorise\"><img src=\"_pics/chek.png\" border=\"0\" alt=\"oui\" title=\"L'utilisateur $item_Nom est validé\" onclick=\"changeEtat()\"/>");
    					print("</a></span></TD>\n");
    				}
    				else
    				{ /* [...] */ }

    Comme on peut le voir ici j'effectue une boucle qui va s'éxecuter tant que j'ai des résultats... Toute fois quand je clique sur mon lien (image) mon alert s'affiche mais contient toujour le meme identifiant (20) alors que mon input type me renvois bien des identifiants différents (700 id différents) . Ca fait comme si mon id ne suit pas ma boucle ou quelque chose comme ca !

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par javaboy
    Qu'est ce que tu entends par Id j'en ai déja mis il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"hidden\" name=\"autorise\" value=\'$item_key\' id=\"autorise\">
    C'est bien de cela qu'on parle ?
    Yes je l'avais po vu

    Sinon : pas d' ID "en dur" dans ta boucle, sinon, chaque ID est dupliqué => pas glop du tout !!
    Un ID doit absolument être unique dans la page (contrairement au name).
    C'est le cas pour ton span et pour "autorise" ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Merci encore une fois pour ton aide mais je ne comprend pas ceci :
    pas d' ID "en dur" dans ta boucle, sinon, chaque ID est dupliqué
    Je viens de modifier mes span et id pour qu'ils soient "uniques"...
    Si je comprend bien ce que tu as ecrit precedement il ne m'est pas possible de faire ce que j'essaye ...
    A savoir :
    Nom : Sans titre.JPG
Affichages : 49
Taille : 7,7 Ko
    (J'ai uploder une image je ne sais pas si c'est ok)
    L'illustration montre un peu ce que je veut faire :
    cliquer sur le machin vert et ca m'affiche dans une alerte la key, mais toutes mes alerts donnent 20 or ca devrai aller au dela.... J'espere que j'arrive a me faire comprendre
    Merci

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Je comprends bien : c'est dû aux ID dupliqués : tu appelles "toto", mais il y en a 20 (disons ...).
    Comme il ne devrait y en avoir qu'un, il doit prendre le 1° qui "vient" (toujours le même) ...

    Génère tes ID avec un compteur dans ta boucle : ID = "autorise_"+$item_key
    (désolé pour la syntaxe : je parle pas PHP, mais c'est l'idée )

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  11. #11
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    D'accord je vais voir ca,

    Cependant mon état d'esprit et le suivant peut être ai je tors :
    Je suis dans une boucle
    {
    echo ($item_key);
    }
    Compteur +=1

    Donc au premier passage
    $item_key = 1
    PUIS au deuxieme passage
    $item_key = 2
    .....
    Donc ma variable ne porte jamais le même nom ??
    En plus si je concatene ma variable avec un compteur je ne peut plus l'exploiter en javascript ???
    En effet javascript s'attend a voir une variable de type abc et il recoit un truc de type abc1 puis abc2....
    Merci pour ta patience et ton aide

  12. #12
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    Salut !

    Telle que tu nous décris ta boucle, elle n'incrémente pas ton compteur mais peut-être que tu as oublié une portion de code.

    C'est les id qui doivent etre incrémentés. Ceci dit, si ton $item_key est une clé unique, tu peux l'utiliser pour créer des noms et id uniques.

    Comme dit E.bzz : tu incrémentes donc $item_key et dans ta boucle tu crées à chaque fois un id différent : $ID = "autorise_"+$item_key

    Tu seras bien sûr obligé d'adapter ton code javascript derrière. S'il "s'attend" à recevoir un id qui s'appelle autorise, alors il faudra ajouter une boucle pour prendre en compte tous ces id. Pour que le javascript sache jusqu'où ça va, tu fais passer la dernière valeur du compteur en paramètre et tu boucles jusqu'à cette valeur (si tu as eu 20 id, alors tu fais passer en paramètre cette valeur).

    Je sais pas si je suis très claire, ça commence à être dure à la fin d'une journée de progra... Savez ce que c'est !

  13. #13
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Voila j'ai plus ou moin reuusi... Grace a vous tous
    Voici mon code 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
    19
    if ($item_Autorise == "O")			
    				{	
     
    					print("<form method='POST' name='ajax'>");
    					print("<TD align='Center'>");
    					print("<input type='image' src='_pics/chek.png' border='0' alt='oui' title=\"L'utilisateur $item_Nom est validé\" id='submit' onclick='Supp($item_key)'/>");
    					print("</TD>\n");
    					print("</form>");
    				}
    				else
    				{	
    					print("<form method='POST name='ajax'>");
    					print("<TD align='Center'>");
    					print("<input type='image' src='_pics/faux.png' border='0' alt='oui' title= title=\"L'utilisateur $item_Nom n'est pas validé\"id='submit' onclick='Auto($item_key)'/>");
    					print("</TD>\n");
    					print("</form>");
    				}
    				print("<TD align=\"Center\">$item_key</TD>");
    				print("</TR>\n");
    Et le JS:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    unction Supp(id) 
    {
    	var http_request = false;
    	var url = "suppr.php?id=" + id ;
    	Request(http_request,url);
    }
     
    function Auto(id) 
    {
    	var http_request = false;
    	var url = "autorise.php?id=" + id ; 
    	Request(http_request,url);
    }
     
    function Request(http_request,url)
    {
     
    	if (window.XMLHttpRequest) 
    	{ // Mozilla, Safari,...
    		http_request = new XMLHttpRequest();
    		if (http_request.overrideMimeType) 
    			{http_request.overrideMimeType('text/xml');}
    	} 
    		else if (window.ActiveXObject) 
    		{ // IE
    		try {
    			http_request = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    			try {
    				http_request = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e) {}
    		}
    	}
     
    	if (!http_request) 
    	{
    		alert('Abandon :( Impossible de créer une instance XMLHTTP');
    		return false;
    	}
    	http_request.onreadystatechange = function() { alertContents(http_request); };
    	http_request.open('GET', url, true);
    	http_request.send(null);
     
    }
     
    function alertContents(http_request) 
    {
    	if (http_request.readyState == 4) 
    	{
    		if (http_request.status == 200) 
    			{alert('Opération effectuée');}
    		else 
    			{alert('Un problème est survenu avec la requête.');	}
    	}
    }
    Mes requetes s'exécutent correctement le truc que je ne comprend pas c'est comment faire pour que la page de s'actualise pas car tout fonctionne mais ma page s'actualise encore...
    Je pense qu'il faut mettre du code dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (http_request.status == 200) 
    			{alert('Opération effectuée');}
    Mais j'ai encore du mal a savoir quoi, en fait il faut injecter ma reponse dans un div mais je ne sais pas trop comment faire .
    Et encore un grand MERCI a tous.

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par javaboy
    Mais j'ai encore du mal a savoir quoi, en fait il faut injecter ma reponse dans un div mais je ne sais pas trop comment faire .
    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (http_request.status == 200) 
    {document.getElementById('id_div').innerHTML = http_request.responseText;
    alert('Opération effectuée');
    }
    A+

    EDIT : le test final est plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (http_request.readyState == 4) {...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  15. #15
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Oui c'est bien ce que j'avais essayé , mais la page se rafraichie quand même et faire de l'ajax pour avoir une page qui se refresh c'est comme pisser dans un violon , ca sert a rien !

  16. #16
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Et voila !!!!
    Ca fonctionne je ne sais pas encore comment !
    Merci à tous pour vos précieux conseils ...

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

Discussions similaires

  1. PHP ? Aide pour débutant SVP
    Par ricco75 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/01/2009, 16h05
  2. [POO] Aide Ajax et PHP
    Par Chichoulinet dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 09/05/2008, 13h21
  3. [AJAX] Aide a la saisie
    Par NeHuS dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/02/2007, 18h16
  4. Aide php api
    Par pascal57 dans le forum Langage
    Réponses: 2
    Dernier message: 12/03/2006, 01h34
  5. Aide en XML svp
    Par crashyear dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 11/01/2006, 15h18

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