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 :

Echanger les données de cellules d'un tableau généré en PHP


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut Echanger les données de cellules d'un tableau généré en PHP
    Bonjour,

    Après avoir lu tout (et n'importe quoi), j'en appelle à vous plus pour une demande d'orientation que pour un debuggage.

    Je vais simplifier le problème pour essayer d'obtenir des réponses simples et compréhensible pour que je comprenne bien
    Imaginons que j'ai un tableau généré de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for ($i=1;$i<=10;$i++){
        echo '<tr>';
        for ($j=1;$j<=20;$j++){
            echo "<td id = '.$i.$j.'>";
            echo $i.' '.$j;
            echo '</td>';
        }
        echo '</tr'>;
    }
    Qui affiche donc dans chaque cellule "n°ligne n°colonne". Dans l'exemple réel, les informations sont prises dans la BDD.

    L'objectif est de pouvoir cliquer sur deux cellules consécutivement puis sur un bouton "échanger" pour échanger les données de ces deux cellules, et ceci autant de fois que l'utilisateur le désire, sans rechargement de la page.
    Quand l'utilisateur juge avoir fini, on envoie le tout à la base de données par PHP à l'aide d'un autre bouton "valider".

    Simple non ? Et pourtant... Je suis... perdu ! J'ai du mal avec ce mélange PHP/Js. Si le tableau était en Js, j'aurais pu utiliser getElementById().innerHTML ? Or là je ne vois pas comment faire pour ensuite sauvegarder les informations dans des variables PHP.
    Jai la nette impression que je vais devoir utiliser AJAX et son XMLHTTPRequest mais je ne sais ni où ni comment. (Jamais utilisé auparavant)

    Je ne demande pas forcément un code tout fait, mais au moins une petite aide pour savoir où chercher, et par quoi commencer...
    En gros, me dire QUOI faire, même si vous ne me dites pas COMMENT tout de suite

    Merci d'avance,

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Dans l'ordre des choses:
    1. tu génères ta page à l'aide de PHP: tu disposes donc côté client d'un simple code HTML/Javascript
    2. tu gères côté client en Javascript la sélection et l'échange de cellules de ta table (tu peux par exemple enregistrer les deux cellules concernées puis échanger leur contenu)
    3. Sur validation de l'utilisateur, tu parcours ta table et tu fabriques une structure qui rend compte des cellules modificatiées (à toi de choisir le format de cette description, ...) que tu postes vers le server.
    4. Sur le server ton script PHP récupères cette structure, l'analyse et fait les modifications associées en bases


    Cela te convient-il ?

    ERE

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Sur validation de l'utilisateur, tu parcours ta table et tu fabriques une structure qui rend compte des cellules modificatiées (à toi de choisir le format de cette description, ...) que tu postes vers le server.

    Sur le server ton script PHP récupères cette structure, l'analyse et fait les modifications associées en bases
    Merci tout d'abord pour cette réponse rapide.

    Pour être tout à fait honnête, j'ai du mal à visualiser ce que tu sous-entends par "fabriquer une structure", parce que c'est justement là que je bloque ! Comment récupère t-elle les données modifiées ?

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Pour être tout à fait honnête, j'ai du mal à visualiser ce que tu sous-entends par "fabriquer une structure", parce que c'est justement là que je bloque ! Comment récupère t-elle les données modifiées ?
    Tu parcours ta table via Javascript (collection de rows et de cells) puis pour chaque cellule tu recupères le contenu (innerHTML ou autre) que tu peux stocker - si besoin - par exemple dans un tableau Javascript.

    Pour ta structure, soit tu génères par exemple une chaine de caractères que tu décoderas sur le server, soit tu peux aussi générer une structure JSON (par exemple directement à partir de ton tableau JS créé) que tu décoderas sur le server via la fonction PHP json_decode

    Ici pour json javascript

    Après tout cela, la logique voudrait que tu ne renvoies vers le server que les cellules réellement modifiées, donc que tu stockes au fil de l'eau les cellules à traiter.

    Est ce assez clair ?

    ERE

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Ca dépasse de loin mon domaine de connaissance... (qui se rapproche de 0 en javascript )
    Mais au moins, ça me donne une piste vers laquelle chercher, Json en l'occurrence.

    Tu parcours ta table via Javascript (collection de rows et de cells) puis pour chaque cellule tu recupères le contenu (innerHTML ou autre) que tu peux stocker - si besoin - par exemple dans un tableau Javascript.
    Comment savoir lors du parcours de la table quelles sont les cellules qui ont été modifiées et que je vais devoir remplacer dans la bdd ?

    Si j'essaye de paraphraser la suite, je dois utiliser Json pour "transformer" le tableau javascript obtenu en une réponse interprétable en PHP pour mettre à jour la BDD ?

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Ca dépasse de loin mon domaine de connaissance... (qui se rapproche de 0 en javascript )
    Mais au moins, ça me donne une piste vers laquelle chercher, Json en l'occurrence.


    Comment savoir lors du parcours de la table quelles sont les cellules qui ont été modifiées et que je vais devoir remplacer dans la bdd ?
    Tu peux ajouter un attribut à chaque cellule qui indique son état (modifiée ou pas)

    Si j'essaye de paraphraser la suite, je dois utiliser Json pour "transformer" le tableau javascript obtenu en une réponse interprétable en PHP pour mettre à jour la BDD ?
    JSON peut prendre ton tableau Javascript et le transformer (le "sérializer") en une chiane de caractères que tu peux poster vers le server. Cette chaine sera décodée en PHP (json_decode) et et reformera le tableau original.

    ERE

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Je ne mets pas encore "résolu" parce que je vais certainement venir demander quelques détails plus précis.

    En attendant, je vais essayer d'avancer un peu le code

    Merci !

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par jean1190 Voir le message
    Je ne mets pas encore "résolu" parce que je vais certainement venir demander quelques détails plus précis.

    En attendant, je vais essayer d'avancer un peu le code

    Merci !
    Dès que tu as avancé ton code, n'hésite pas à revenir, on corrigera si nécessaire !

    ERE

Discussions similaires

  1. Les données se répètent dans mon tableau
    Par mozambi dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/03/2012, 16h40
  2. [Débutant] masquer les données de cellules dans un datagridview
    Par djelloharmel dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/02/2012, 10h28
  3. Réponses: 0
    Dernier message: 12/11/2009, 13h50
  4. Extraire les données des cellules d'un tableau html
    Par taz82000 dans le forum Langage
    Réponses: 8
    Dernier message: 05/06/2009, 22h24
  5. Réponses: 1
    Dernier message: 17/07/2008, 10h03

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