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

PHP & Base de données Discussion :

Récuperer la position d'une liste sortable en PHP Objet


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut Récuperer la position d'une liste sortable en PHP Objet
    Bonjour,

    J'ai fait une liste sortable qui marche très bien.
    Maintenant, j'aimerais récupérer la nouvelle position des éléments en cliquant sur le bouton valider!

    Modèle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function ordonnerMenu($idMenu, $ordreMenu) {
            $sql = "UPDATE menu 
                    SET ordre='$ordreMenu'
                    WHERE id_menu=$idMenu";
            $res = $this->executerRequete($sql);
        }

    Controleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function ordonnerMenu() {
            $idMenu = $this->requete->getParametre("idMenu");
            $ordreMenu = $this->requete->getParametre("ordreMenu");
     
            $this->menu->ordonnerMenu($idMenu, $ordreMenu);
        }

    Vue:
    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
     
    <form method='post' action='eaproduits/ordonnerMenu' class='ordreMenu'>
                                            <div class='form-group'>
                                                <dl id='sortable'>
     
                                                    foreach ($array2 as $row) {
                                                        $idMenu2 = $row['idMenu'];
                                                        $idParentMenu2 = $row['idParent'];
                                                        $libelleMenu2 = $row['libelle'];
                                                        $ordreMenu2 = $row['ordre'];
     
                                                                        <dt>
                                                                             $libelleMenu2                                                                        
                                                                            <input type='' name='ordreMenu' value=\"$ordreMenu2\">
                                                                            <input type='' name='idMenu' value=\"$idMenu2\">
                                                                        </dt>";
                                                    }
     
                                                 </dl>
                                            </div>
     
                                            <div class='form-button'>
                                                <button type='submit'>Valider</button>
                                            </div>
                                        </form>

    Le problème est que je ne vois pas du tout comment récupérer la nouvelle position de ma liste!
    Auriez-vous une idée?

    Merci,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    un simple ".... ORDER BY ordre ASC" dans la requête ?


    Sinon, explique ce que tu entends par "récupérer la nouvelle position".

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut
    Par exemple:
    Item A en position 1
    Item B en position 2
    Item 3 en position 3

    Les positions correspondent à la colonne 'ordre' dans ma BDD.
    La liste sortable permet à l'utilisateur de changer les positions. Une fois qu'il appuie sur le bouton 'Valider', j'aimerais que la colonne 'ordre' de ma BDD se mette à jour avec les nouvelles positions/le nouvel ordre!

    D'après mes recherches, il faudrait faire un serialize() ... mais je n'y arrive pas!
    Je bloque vraiment et je ne vois pas comment faire pour récupérer cet nouvel ordre et updater ma BDD!

    Tu as une idée?

    Merci,

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    De quelle manière l'utilisateur change t'il la position ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut
    Via un drag'n'drop!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(function() {
            $( "#sortable" + j ).sortable({
                placeholder: "highlight",
                revert: true,
                tolerance: "pointer"
            });
            $( "#sortable" + j ).disableSelection();
    });

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je vois qu'il y a des bouts de input dans ta liste.
    C'est lié au fonctionnement du plugin jQuery ou c'est un essai que tu as fais ?

    Parce que le jQuery modifie la liste dans le navigateur mais si rien ne remonte vers PHP, tu n'es pas pret de faire une mise à jour dans la bdd.
    Une solution est effectivement qu'en plus de modifier visuellement la liste, le javascript modifie les valeurs d'ordre dans un formulaire HTML.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Récuperer les données d'une liste de valeurs
    Par Pitou5464 dans le forum Access
    Réponses: 3
    Dernier message: 11/08/2006, 11h28
  2. Réponses: 6
    Dernier message: 31/07/2006, 16h01
  3. Réponses: 1
    Dernier message: 20/06/2006, 14h32
  4. Réponses: 3
    Dernier message: 15/05/2006, 16h09
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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