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

Bibliothèques & Frameworks Discussion :

Drag'n'Drop à la volée [script.aculo.us]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut Drag'n'Drop à la volée
    Bonjour à tous, j'ai maintes et maintes fois eu recours à votre aide précieuse via les poste existant (Merci à vous au passage).
    Mais je suis aujourd'hui face à problème auquel je n'ai trouvé aucune solution sur ce forum.

    Je vous expose la chose, développant depuis peu en ajax via aculous et prototype je cherche aujourd'hui à faire un backoffice en ajax avec un fonction drag'n'drop pour la suppression (oui je sais c'est plus pour faire que genre que réellement utile mais que voulez vous ^^).

    Le problème est donc que je dois actualisé assez souvent (1 seconde dans mon exemple) la liste des entrées de ma base.. or il semblerait que la fonction drag et la mise à jour auto ne soit pas très compatible.

    premier cas :
    je lance ma boucle php directement dans mon fichier de base et le drag marche niquel. (seulement aucune mise à jour automatique des données si je modifie).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    header('Content-type: text/html; charset=utf-8');
    include('asset/config.inc.php');
    mysql_query("SET NAMES 'utf8'");
     
    $req=mysql_query("select * from video");
    while($data=mysql_fetch_object($req)){
            echo '<div id="'.$data->id.'">'.$data->produit.' '.$data->probleme.'</div>';
            echo '<script type="text/javascript">new Draggable("'.$data->id.'",{revert:true});</script>';
            }
    ?>
    deuxième cas :

    ma fonction de rafraichissement auto :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript" language="javascript" charset="utf-8"> 
     
    function auto_update(){
    	 new Ajax.PeriodicalUpdater('liste', 'auto_update.php', {frequency: 1});
    }
    </script>
    et je place donc le petit script php du dessus dans un fichier externe appelé auto_update.php
    La mise à jour se fait bien toutes les secondes, en revanche.. mon drag ne marche plus..


    Si une ame charitable voulait bien m'aider ou m'indiquer une autre solution (en aculous/prototype de préférence) je lui serait reconnaissante.

    Cordialement,
    Sweet

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Il faut que tu redéfinisses les enfants de ton élément d'id liste comme draggable après la requete AJAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script type="text/javascript" language="javascript" charset="utf-8"> 
     
    function auto_update(){
    	 new Ajax.PeriodicalUpdater('liste', 'auto_update.php', {frequency: 1, onComplete:function(){
    $("liste").select("...").each(function(item) {
      new Draggable(item);
    });
    }});
    }
    </script>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    Bonjour,

    Merci de ta réponse.. bien qu'elle ne soit au final révélée inutile pour mon cas ^^' désolé du temps perdu.

    En fait le drag'n'drop et la fonction Ajax.PeriodicalUpdater sont en effet un poil incompatible (oui le rechargement automatique toutes les secondes remet l'élément 'dragé' à sa position initial, il faut donc être très vif (l'allongement de temps de recharge aurait pu le faire, mais on perd le côté instantané de la mise à jour))

    Je me permet de poster ma solution au cas ou elle intéresserait du monde:
    je met donc à jour uniquement quand une modification est apporté, en revanche le problème de chargement des données en php via un Ajax.Updater et le drag ne fonctionnaient toujours pas ensemble j'ai donc dans modifié ma boucle php comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    header('Content-type: text/html; charset=utf-8');
    include('asset/config.inc.php');
    mysql_query("SET NAMES 'utf8'");
    $req=mysql_query("select * from video");
    while($data=mysql_fetch_object($req))   {
            echo '<div id="'.$data->id.'" onmouseover="drag(\''.$data->id.'\')">'.$data->produit.' '.$data->probleme.'</div>';
            }
    ?>
    et ajouter la fonction javascript suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function drag(item){			
    	new Draggable(item,{revert:true});
    }
    ça sonne un peu bidouille et les puriste vont surement me jeter des pierres mais bon, ça marche ^^, ça reste l'essentiel.

    Cordialement,
    Sweet

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

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. Créer image a la volée disposant de la fonction drag n drop
    Par avogadro dans le forum Composants VCL
    Réponses: 12
    Dernier message: 07/04/2006, 17h35
  3. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  4. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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