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

NodeJS Discussion :

Gérer l'ordre des éléments + sauvegarde en live en bd


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut Gérer l'ordre des éléments + sauvegarde en live en bd
    Bonjour à tous,

    J'aimerais faire la même chose que ce qu'il y a sur ce lien : http://www.sebastienangot.fr/blog/developpement/tutoriel-drag-and-drop-jquery-ajax-sauvegarde-en-base-de-donnees/

    Mais seulement dans mon cas ça ne marche pas puisque je ne récupère pas mes blocs dans une boucle. Mes blocs n'ont pas la même structure html donc je suis obligé de récupérer dynamiquement chaque bloc avec sa propre requête. Ce qui cause à mon avis le problème de positionnement. Existe-il un moyen de le faire sans passer par la boucle ? Merci

    Cdlt,

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Bonjour,

    Aurais tu moyen de nous montrer la structure de tes éléments ça nous aiderais à analyser ton soucis ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut
    Re @Showie,

    Merci d'avoir pris le temps de me répondre.
    Mes éléments (divs) ci-dessous ont des structures différentes dans une template (page). Je souhaiterais gérer leur ordre c-à-d les déplacer (ré-organiser) par glisser-déposer et ensuite sauvegarder en live en base de données comme dans ce tutoriel : http://www.sebastienangot.fr/blog/developpement/tutoriel-drag-and-drop-jquery-ajax-sauvegarde-en-base-de-donnees/

    Les différences avec l'exemple du tutoriel dans le lien ci-dessus sont : moi j'ai des blocs (div) au lieu des listes (li) et dans le tutoriel c'est une boucle pour afficher les puces comme il s'agit des mêmes éléments. Dans mon cas les divs n'ont pas les mêmes éléments donc je ne peux pas faire de boucle, d'ou la récupération individuel des divs. Hors pour avoir de l'ordre il faut qu'il y ait une boucle. Existe-il de solutions sans boucle ? Merci

    Voici la structure de mes éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Structure de la table `order`
    CREATE TABLE IF NOT EXISTS `order` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `titre` varchar(255) NOT NULL,
      `description` text NOT NULL,
      `image` varchar(255) NOT NULL,
      `lien` varchar(255) NOT NULL,
      `position` int(11) NOT NULL,
      PRIMARY KEY (`newsletter_id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
    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
     
    <div id="<?=$row['id'];?>">
      <h4><?=$row['titre'];?></h4>
      <p><img src="<?=$row['image'];?>"></p>
      <p><?=$row['description'];?></p>
      <p><a href="#"><?= $row['lien']; ?></a></p>
    </div>
    <div id="<?=$row['id'];?>">
      <h4><?=$row['titre'];?></h4>
      <p><?=$row['description'];?></p>
      <p><a href="#"><?= $row['lien']; ?></a></p>
    </div>
    <div id="<?=$row['id'];?>">
      <h4><?=$row['titre'];?></h4>
      <p><?=$row['description'];?></p>
    </div>
    <div id="<?=$row['id'];?>">
      <p><img src="<?=$row['image'];?>"></p>
      <p><a href="#"><?= $row['lien']; ?></a></p>
    </div>

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Ta liste d'élément devrait-être enrichie de class sur les div et d'une div englobant afin de faciliter la sélection des éléments.

    voila un rapide exemple avec ta structure de code :http://jsfiddle.net/joxbxzz1/

    est ce que c'est bon pour toi?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut
    Re @Showie,

    Merci encore pour ta réponse mais ce n'est pas la réorganisation le problème mais plutôt la sauvegarde.
    Je veux afficher mes DIV dans l'ordre, ce qui sous-entend :
    J'affiche le premier;
    Puis le deuxième;
    et ainsi de suite...;

    Hors sans boucle, mon programme ne peut pas afficher les éléments du 1er au dernier. Je précise bien que mes DIV n'ont pas la même constitution des éléments (c-à-d structure différente). Est-ce que le fait de ne pas passer par une boucle pose problème ?

    Faut-il (en base de données) que je précise pour chaque DIV à afficher, celle que je veux et créer des fonctions pour chacune des DIV ?

    Par exemple :
    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
     
    // connexion BD
    require_once('db.php');
     
    $sql = 'SELECT * FROM maTable ORDER BY position';
    $req = $db->prepare($sql);
    $req->execute() or die(print_r($req->errorInfo()));
    $row = $req->fetchAll();
     
    switch ($row['id']) {
        case 1:
            function div1(){
                echo "<div class='toto'>$row['contenu_div1']</div>";
            }
            break;
        case 2:
            function div2(){
                echo "<div class='tutu'>$row['contenu_div2']</div>";
            }
            break;
        case 3:
            function div3(){
                echo "<div class='tata'>$row['contenu_div3']</div>";
            }
            break;
        ...
        default:
            code to be executed 
    } 
     
    //------------------------------------
    //recup des div à afficher en bdd par exemple stockées dans un array
    $a_afficher = array();
    $a_afficher[] = array('quellediv'=>'div1');
    $a_afficher[] = array('quellediv'=>'div2');
    $a_afficher[] = array('quellediv'=>'div3');
     
    //------------------------------------
    // je génère l'affichage
    //... via une BOUCLE !!!!
    for ($i=0;$i<3;$i++){
      $a_afficher[$i]();
    }
    Merci

  6. #6
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    ok,

    Juste pour info, j'ai fait une petite erreur dans le code précédent aussi j'ai corrigé le fiddle

    Le fait de ne pas passer par une boucle ne pose pas de soucis il faut juste trouvé un point commun à tout tes blocs regarde l exemple du fiddle que j'ai modifié :http://jsfiddle.net/joxbxzz1/8/ le point commun c'est la class enfant et le fait d'appartenir à la DIV.bougeable.

    Quand à l'enregistrement tu reçois les id dans l'ordre des positions :

    Donc dans ton script /updateListe.php tu fait une boucle genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $parametres = array('div_1','div_3','div_2');
     
    for($i=1;$i<count($parametres);$i++){
      UPDATE maTable  SET position = $i WHERE id = $parametres[$i];
    }

Discussions similaires

  1. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54
  2. [XSL][débutant]trié l'ordre des éléments d'un fichier xml
    Par pistache42 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/04/2006, 10h37
  3. [XSL] Ordre des éléments présentés
    Par Cupidon dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/01/2006, 13h58
  4. gérer l'ordre des tabulations dans un formulaire
    Par amigauss dans le forum Langage
    Réponses: 11
    Dernier message: 17/01/2006, 10h43
  5. [C#] ordre des éléments dans un datagrid
    Par liliprog dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/09/2005, 16h31

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