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 :

POST pagination et ajout/suppression array


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Points : 119
    Points
    119
    Par défaut POST pagination et ajout/suppression array
    Bonjour, j'ai plusieurs problémes qui découlent plus ou moins les uns des autres donc je les mets dans un seul poste mais si il faut en traiter un par poste dites le moi j'éditerai, mais pour avoir une vu d'ensemble je préfére toute mettre ici.
    Alors voila :
    J'ai une BDD avec beaucoup d'entrée. je souhaiterais afficher toutes ces données dans un tableau HTML. Pour l'instant je ne travail qu'avec un petit echantillon de ces données pour réaliser les fonctions de traitement mais cela donne une idée de ce à quoi ressemble le tableau : http://img11.hostingpics.net/pics/534052tableauhtml.png

    Par la suite, pour afficher l'ensemble des données je pense passer par un systéme de pagination.
    (Pb n°1 :Est-ce la bonne solution? De passer par un systéme de pagination?)(Cela pose un autre probléme que je vais vous exposer un peu plus tard).

    Pour traiter ces données (effectuer des requetes sur la BDD comme supprimer un ensemble de ligne), on clique sur les lignes que l'on veut pour les selectionner et on récupére les valeurs des "marques" que l'on met dans un array.
    Pour un modéle avec un tableau sur une seule page c'est bon :
    Ca marche puisque l'on selectionne d'abord les lignes puis ensuite on recupere la valeurs des "marque" quand on effectue l'action. Mais dans le cadre d'une pagination non puisqu'à chaque changement de page, la page est rechargé et les valeurs perdues or je souhaite garder la selection des pages précédentes. Voila ce que je pensais mettre en oeuvre :
    - A chaque selection / deselection mettre à jour l'array des "marque" (on enleve où on ajoute).

    (Pb n°2 : Comme j'ai un rowspan, je fais une boucle sur chaque ligne selectionnée et je teste si la colone "marque" existe (1ere ligne du rowspan) et si la valeur de "marque" est deja dans le tableau, sinon je la supprime(deselection). Mais ma condition ne marche pas et je ne sais pas pourquoi je rentre toujours dedans même quand elle n'est pas respectée...
    https://jsfiddle.net/Flavors/nuzo8gn2/19/
    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
     
    	var $marques = $('marques');//Déclaration en variable globale pour les garders
    	var liste_marque = []; ////Déclaration en variable globale pour les garders
    	alert("liste marque = "+liste_marque);
     
    	//Fonction JS pour selectionner les lignes
    	$('tbody').on( 'click', 'tr', function () //Lors d'un clic sur une ligne du 	tableau mais pas sur l'en-tête
    	{
          $dataTr = $(this).data('tr');//le data-tr des ligne vaut "ligne_x"
          $trList = $("tr[data-tr=" + $dataTr + "]"); //On liste tous les TR qui on le même attribut ("ligne_tr")
          $trList.toggleClass("selected");//On selectionne ou deselctionne
          Maj_Liste();
      });
     
      //Fonction JS pour Mettre à jour la liste des elements selectionnes
      function Maj_Liste()
      {	
          alert("Entrée dans Maj_Liste");
          $('.selected').each(function(){
          var id = $('.col_marque', this).html();
          var position = liste_marque.indexOf(id)//On prend la place de id dans le tableau "liste_marque"
          alert("position : "+position);
          if(('undefined' != typeof(id)) && (position == -1)); //Si id existe et n'est pas présent dans la liste_marque
          {
              alert("Dans le if");
              alert("insertion de "+id);
              liste_marque.push(id);//On insere id dans le tableau
              alert("liste marque maj = "+liste_marque);
          }
          if(position != -1)
          {
              alert("on enleve");
              liste_marque.splice(position,1);// On supprime id
          }
      });    
     
      return liste_marque.length ? $marques.text(liste_marque.join(', ')) : $marques.text('');
      }
    - A chaque changement de page transmettre le tableau de valeur "marque" à la page qui est rechargée.

    (Pb n°3 : Comment conserver le tableau avec les valeurs de "marque" lors du changement de page? Au début je pensais utiliser un formulaire avec juste un bouton et un input:hidden pour transmettre le tableau via un POST mais je ne pense pas que cela puisse marcher...Et je n'ai pas vraiment d'autre idée à ce sujet.)

    Voila Désolé pour ce poste (trop long?). Si quelqu'un à une idée pour amélioré la chose ou une solution, je suis preneurs!

    Merci.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Points : 119
    Points
    119
    Par défaut
    Pour le Pb n°2 J'avais une erreur d'inatention sur le if (if(('undefined' != typeof(id)) && (position == -1)); ) le ";". Du coup j'ai remarqué que le raisonnement n'est pas le bon.
    En effet a chaque fois que je clic sur une autre ligne que celle qui est deja selectionnée, , celle qui était deja dans la liste est supprimmée alors qu'elle est toujours selectionnée. Je vais essayer de résoudre ce probléme et posterais le résultat (si je le trouve ^^⁾.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 17
    Points : 16
    Points
    16
    Par défaut PB n°1
    Salut,

    Concernant ton problème pour transmettre les valeurs d'une page à l'autre tu peux :

    - créer un tableau Json dans un cookie => http://ppk.developpez.com/tutoriels/...es-javascript/

    - créer un tableau Json dans une session (Ajax -> php)

    - utiliser le local storage => https://developer.mozilla.org/fr/docs/DOM/Storage

    - modifier dynamiquement les liens de ta pagination (moins bien) en passant en GET un tableau ou en concaténant ex : http://mondom.fr/page25.php?val1=foo&val2=bar

    Je te souhaite une bonne soirée

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Points : 119
    Points
    119
    Par défaut
    Bonjour et désolé pour le délai de réponse, normalement je reçois un mail et la je ne l'ai pas vu.
    Merci pour les solutions proposées
    Je me suis depuis plus penché sur la question et quelqu'un m'a gentillement aidé.
    Citation Envoyé par lobotoFix Voir le message
    créer un tableau Json dans une session (Ajax -> php)
    C'est la solution qui a été retenu.

    Merci encore.

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

Discussions similaires

  1. [windows xp]:ajout suppression de programmes ne s'affiche pa
    Par mouna201 dans le forum Windows XP
    Réponses: 2
    Dernier message: 11/01/2006, 12h11
  2. comment lister les ajouts/suppression ?
    Par debdev dans le forum Access
    Réponses: 4
    Dernier message: 21/11/2005, 15h23
  3. Pb ajouter/suppression élément liste
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/09/2005, 15h54
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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