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

jQuery Discussion :

Besoin d'une information d'un autre tableau d'une même ligne


Sujet :

jQuery

  1. #1
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut Besoin d'une information d'un autre tableau d'une même ligne
    Bonjour,

    j'ai 2 tableaux côte à côte, celui de gauche me permet de le fixer pour garder un visu dessus lors du scroll vers la droite du tableau de droite. Dans mon tableau de droite, j'ai un bouton suppr où j'ai besoin de récupérer l'information du tableau de gauche de cette même ligne. Comment puis-je procéder ? sachant que this fait référence à mon tableau de droite.
    Un petit screen pour mieux comprendre:

    Nom : Sans titre.png
Affichages : 129
Taille : 10,2 Ko

    Actuellement en retour j'ai ça, j'ai besoin de l'information encadrée en rouge:

    Nom : Sans titre1.png
Affichages : 120
Taille : 5,0 Ko

    Et voilà ma fonction pour le bouton:

    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
     
    // DEBUT CLICK BOUTON SUPPRIMER
    	$(document).on("click", "#BtnSuppr", function (e){
     
    		var id = "<?php echo $id;?>";
    		var NumInt = $("#tabGauche").closest("tr").find("td:eq(0)").text();
    		var NomDoc = globNDoc;
    		var Type = "";
     
    		for($i=0;$i<5;$i++)
    		{
    			if($("#selectFax").val()==ValOption[$i])
    			{
    				var Option = ValOption[$i];
    				TypeDoc = "fax";
    			}
    			if($("#selectMail").val()==ValOption[$i])
    			{
    				var Option = ValOption[$i];
    				TypeDoc = "mail";
    			}
    		}
     
    		if(TypeDoc == "mail"){
    			var DateCreat = $(this).closest("tr").find("td:eq(7)").text();
    			var Destinataire = $(this).closest("tr").find("td:eq(1)").text();
    			var Expediteur = $(this).closest("tr").find("td:eq(0)").text();
    			var HeureCreat = $(this).closest("tr").find("td:eq(8)").text();
    			var TypeImp = $(this).closest("tr").find("td:eq(2)").text();
    		}
    		else{
    			var DateCreat = $(this).closest("tr").find("td:eq(7)").text();
    			var NumFax = $(this).closest("tr").find("td:eq(2)").text();
    			var HeureCreat = $(this).closest("tr").find("td:eq(8)").text();
    			var TypeImp = $(this).closest("tr").find("td:eq(3)").text();
    		}
     
    		$.ajax({
    			"url":"SupprFax.php",
    			"type":"POST",
    			"data":{
    				 "DateCreat": DateCreat, "Destinataire": Destinataire, "Expediteur": Expediteur, "NumFax": NumFax, "HeureCreat": HeureCreat, "id": id, "NomDoc": NomDoc, "NumInt": NumInt, "TypeDoc": TypeDoc, "TypeImp": TypeImp
    			},
    			"dataType":"json",
    			"success":function(data){
     
    			}
    		});
     
    		// $("#tabGauche").closest("tr").fadeOut("slow");
    		$(this).closest("tr").fadeOut("slow");
    		$("#NumInt").trigger("change");
    	});
    // FIN CLICK BOUTON SUPPRIMER
    Merci d'avance, bonne journée !

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 496
    Par défaut
    pourquoi ne pas te simplifier la vie : dupliquer l'info du tableau de gauche dans la 1ere colonne du tableau de droite.
    en CSS masquer cette 1ere colonne.
    comme ca, en js t'as juste a "rester" dans ton <tr> pour retrouver ton info
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Le problème est que même masqué, la page fait le traitement, si l'utilisateur souhaite afficher 10 000 lignes dans le tableau, ça va alourdir la page

    merci pour ta suggestion

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    en récupérant l'indice de ta ligne <tr> de ton tableau de droite il te suffit d'aller lire le contenu de la <td> de la <tr> ayant le même indice dans ton tableau de gauche.

  5. #5
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour NoSmoking,

    effectivement c'est ce que je dois faire mais je suis face à un problème. Dans mon code, je ne gère pas dynamiquement mes tr, j'ai besoin de le faire pour que chaque lignes prennent +1 afin de les identifier. Je vous fais part du code :

    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
     
    if(TypeRech == "Fax" || TypeRech == "Mails")
    {
    	// construit les lignes avec les données retour
    	$.each(retourjson, function(titre, retour)
    	{
    		// toutes les colonnes que je ne souhaite pas afficher
    		if(titre != "TypeInt" && titre != "Auth" && titre != "Envoi" && titre != "NDoc")
    		{
    			if(titre == "MtTotDoc")
    			{
    				retour = Arrondir(retour, 2);
    				Total += +retour;
    				retour += " €";
    			}
    			if(retour == "0 €") retour = "- €";
    			if(retour == "00-00-0000" || retour == "00:00:00") retour = "";
     
    			$cell=$("<td />").html(retour);
    			$ligne.append($cell);
    			if(titre == "NI") $cell.hide();
    		}
    	});
    	$("#tabDroite").append($ligne);
    }
    Comment je peux modifier le code afin que chaque ligne à un tr id="numéro" ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    non tu peux simplement récupérer l'indice du tr dans la collection des tr avec .index() https://api.jquery.com/index/
    Exemple de ciblage de la ligne de même rang dans un autre tableau
    https://jsfiddle.net/6zgtcv34/11/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Merci bien pour vos réponses mais je ne parviens pas à faire ce que je souhaite. En fait quand je clic sur le bouton Suppr, je fais un fadeOut sur ma ligne this, donc ça fonctionne, mais la ligne correspond au Numéro d'intervention lui ne fadeOut pas, c'est normal, je ne fais rien dessus car je n'arrive pas à faire coincider les deux éléments

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    J'ai du mal à voir ce que tu n'arrive pas à faire !!!
    Par rexemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('#table-de-droite tbody tr').on('click', function () {
      // récup. numéro de la ligne
      var num_ligne = $(this).index();
      // récup. ligne correspondante tableau de gauche
      var oElem = $('#table-de-gauche tbody tr').eq(num_ligne);
      // on fait ce que l'on veut avec l'élément
      oElem.fadeOut();
    });

  9. #9
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Bonjour,

    merci pour ton intervention NoSmoking. La ligne qui récupère mon numéro de ligne est toujours égal à 1, je comprends pas pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var num_ligne = $(this).index();

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Peut être simplement parce que dans mon exemple l'écouteur est placé sur la <tr> et non sur un <button>, il te faut donc remonter à la <tr> parent du <button> avant de récupérer l'index().

    Un indice : jQuery.closest().

  11. #11
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Septembre 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2013
    Messages : 81
    Par défaut
    Mais oui
    Merci beaucoup, je passe en résolu

    Bonne journée !

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

Discussions similaires

  1. Obtenir information d'une cellule d'un autre tableau
    Par arno80 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/06/2014, 15h56
  2. Réponses: 12
    Dernier message: 29/03/2012, 13h47
  3. recupération d'informations d'un autre tableau
    Par blimp dans le forum Excel
    Réponses: 2
    Dernier message: 09/05/2007, 11h35
  4. Réponses: 7
    Dernier message: 26/07/2006, 14h48
  5. Comment passé des tableau d'une page a l'autre
    Par kaygee dans le forum Langage
    Réponses: 20
    Dernier message: 08/01/2006, 23h26

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