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 :

Label pour multiple ID (JS+jQuery+AJAX+PHP+MYSQL)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Par défaut Label pour multiple ID (JS+jQuery+AJAX+PHP+MYSQL)
    Bonjour,

    je suis entrain de creer une base de données et j'ai créer un system de label comme celui de Gmail.

    Pour expliquer vite fait j'ai 2 tables: produit, label et 1 table de corrélation: _prodlabel

    J'arrive bien a gerer l'ajout d'un label sur un produit (fonction upLabels())mais cela ne marche pas bien pour ajouter un label sur de multiples produits (fonction upLabelsMulti()).

    Pour savoir quel sont les produits sélectionnés j'utilise jQuery, puis j'appele la function upLabels() qui ajoute un label pour un produit.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function upLabelsMulti(url,action) {
    	if(confirm("Are you sure to "+action+" labels for the "+$("input.cbID:checked").length+" selected products"))
    	{
    		$("input.cbID:checked").each( function() {
    			upLabels(url+$(this).attr("value"))
    		})
    		//window.location.href=window.location.href; //refresh the web page
    		history.go(0); //Refresh the page keeping posted value
    	}
    }
    La fonction qui ajoute un label a un produit (Je pense que le problème viens de la car je ne connais pas du tout AJAX et ne comprend pas très bien comment ca marche.

    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
     
    function upLabels(url)
    {
     
    if (url=="")
      {
      document.getElementById("addremlbl").innerHTML="";
      return false;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("addremlbl").innerHTML=xmlhttp.responseText;
        }
      }
     
    xmlhttp.open("GET","rlabels.php"+url,true);
    xmlhttp.send();
    return false;
    }
    Et le code de rlabels.php qui permet un appel a MySQL.
    les argument utilisés sont:
    • prd_ID: ID du produit
      lbl_ID: ID du label
      action: valeur prenant a (add) ou d (delete)



    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
     
    if($prd_ID>0 && $lbl_ID>0)
    {
    	if($action=="a" && $role["a"])
    	{
    		$query="INSERT INTO _prodlabel VALUES ('$prd_ID','$lbl_ID');";
    		$res=mysql_query($query);
    	}
     
    	if($action=="d" &&  $role["d"])
    	{
    		$query="DELETE FROM _prodlabel  WHERE PRD_ID = $prd_ID AND LBL_ID = $lbl_ID";
    		$res=mysql_query($query);
    	}
    	$action="u";
    }
    Voila, si quelqu'un peux m'aider cela serait sympa!
    De plus je pense qu'il y a possibilité d’améliorer l'appel a MySQL mais je ne mis connais pas trop!

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Par défaut
    Toujours le meme probleme, j'ai changé le temps de réponse d'ajax en xmlhttp.status==2000 ce qui me permet d'attendre 2s pour executer toute les instructions mais visiblement ce n'est pas non plus la bonne solution.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Citation Envoyé par elraton Voir le message
    ... j'ai changé le temps de réponse d'ajax en xmlhttp.status==2000 ce qui me permet d'attendre 2s...
    je pensais que c'était le code de la réponse du serveur.

    Un truc qui devrait t'intérreser Les meilleurs cours et tutoriels AJAX

    et t'en qu'a utiliser jQuery autant l'utiliser pour ta requête Ajax, http://api.jquery.com/jQuery.ajax/, et le pour le reste.

Discussions similaires

  1. [MySQL] Requête pour affichage nombre de "likes" / Ajax, PHP, MySQL
    Par E. Nigma dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/05/2015, 08h34
  2. [AJAX] - Ajax - PHP/MYSQL - Accordéon Jquery
    Par SpiderNéo dans le forum AJAX
    Réponses: 0
    Dernier message: 27/12/2009, 11h31
  3. Jquery,Ajax,PHP et transfert de donnée
    Par Samolo dans le forum jQuery
    Réponses: 2
    Dernier message: 14/09/2009, 05h36
  4. jQuery + Ajax + PHP (PB avec l'url)
    Par JeePI196 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/04/2009, 19h22

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