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 :

Drag and drop méthode setData pour dataTransfert


Sujet :

JavaScript

  1. #21
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 215
    Par défaut
    L'envoi des données peut se faire en utilisant la technique Ajax et en transmettant les données sous la forme d'un objet « sérializé » avec la méthode JSON.stringify().
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function sendData() {
      // récup. des donnéees
      var dataGroupes = JSON.stringify(getGroupes());
      // création objet requête
      var oReq = new XMLHttpRequest();
      // définition et envoi des données
      oReq.open("POST", "fichier-de-traitement-json.php", true);
      oReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      oReq.send("groupes=" + dataGroupes);
    }
    Côté serveur il te suffit de décoder la chaîne avant utilisation, par exemple
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if (!empty( $_POST["groupes"])) {
      $datas  = json_decode($_POST["groupes"], true);
      forEach ($datas as $name => $data) {
        forEach ($data as $value) {
          // traitement des données
        }
      }
    }
    ?>
    Ne pas oublier les vérifications d'usage.

  2. #22
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Merci beaucoup de ton aide.
    Je vois la construction de la fonction sendData, et je vais la potasser.
    Côté PHP, je pense me débrouiller, d'autant que tu m'as donné la solution.
    Enfin, je vois le bout du problème.
    Ce que je regrette, c'est que les bouquins expliquant D&D ne traitent pas le problème de fond en comble, car ils donnent des exemples avec des prérequis dignes d'un cursus de plusieurs années d'études !....
    Heureusement, ce forum permet des réponses adaptées à chaque cas.
    J'ai vraiment beaucoup apprécié ton aide.

    Marc

  3. #23
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Cher NoSmoking, j'ai encore besoin de tes services si tu veux bien.
    La fonction sendData est déclenchée par mon bouton avec onclick = "sendData()"
    Normalement le ficher JSON est envoyé par POST au fichier PHP intitulé "traitementfichierJson.php". (dans le même dossier)
    Pour le voir à l'écran, je suis bien obligé de faire un appel à ce fichier avec window.location.href="traitementfichierJson.php" que j'ai mis dans sendData. Je suis bien redirigé sur le fichier de traitement.
    Je teste l'existence du fichier posté ["groupes"] ----> ce qui ne donne rien !... Groupes non posté .....je ne comprends plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function sendData() {
      // récup. des donnéees
      var dataGroupes = JSON.stringify(getGroupes());
      // création objet requête
      var oReq = new XMLHttpRequest();
      // définition et envoi des données
      oReq.open("POST", "traitementfichierJson.php", true);
      oReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      oReq.send("groupes=" + dataGroupes);
      window.location.href="traitementfichierJson.php";
    }
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php
    if (!empty( $_POST["groupes"])) {
      $datas  = json_decode($_POST["groupes"], true);
      forEach ($datas as $name => $data) {
      	echo $name . ':';
        forEach ($data as $value) {
    	echo '  ' . $value;
          // traitement des données
        }
      }
    }else{
    	echo 'Groupes non postés';
    }
    ?>

  4. #24
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Je pense que je me débrouillerai pour décoder le fichier JSON, j'ai trouvé des exemples sur Internet.
    Par contre, où ça coince : malgré le send() ---> oReq.send("groupes=" + dataGroupes);
    je ne trouve pas le fichier dans le POST de "traitementfichierJson.php". ??

  5. #25
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut Explication peut-être un peu plus claire
    En activant la console de mon navigateur, je vois bien la ligne ;
    XHR POST http://......../traitementfichierJson.php
    et dans les paramètres transmis :
    groupes={"groupe1":["1. François ... etc.} les modifs apportées par les Drag and Drop sont bien prises en compte.
    Dans le fichier PHP, je reçois théoriquement ces données sous le nom 'groupes'.
    Donc, en testant le POST['groupes'], ce fichier PHP devrait pouvoir me dire qu'il a reçu le fichier 'groupes' et me répondre.
    C'est pour cela que j'ai juste écrit ;
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!empty( $_POST["groupes"]))
    echo 'fichier reçu';
    Or, cela ne marche pas.
    Peux-tu me donner une explication s'il te plait ?
    Merci d'avance.

  6. #26
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Par défaut
    Merci à tous pour vos contributions.
    J'ai été conseillé et on a trouvé la solution.
    Une erreur de code dans :
    oReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. besoin d'aide pour la création d'un drag and drop
    Par thor76160 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/03/2009, 18h27
  2. Réponses: 10
    Dernier message: 27/05/2008, 15h09
  3. Réponses: 6
    Dernier message: 18/12/2007, 09h16
  4. Meilleur méthode pour du drag and drop ASP.NET
    Par sspizer dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/07/2007, 14h10
  5. Drag and drop pour control en VBA
    Par cbleas dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/03/2007, 10h30

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