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

Langage PHP Discussion :

Select dynamique et PHP


Sujet :

Langage PHP

  1. #1
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut Select dynamique et PHP
    Bonjour

    J'ai un formulaire avec une liste (select) non-déroulante, pour que l'utilisateur fixe un classement dans une liste.
    Jusqu'ici, tout va bien.
    Mais quand il soumet son choix par le clic sur le bouton submit, le classement choisi est perdu. La liste par défaut revient.
    La méthode d'envoi des données est "post". Et le javascript se charge de modifier l'ordre.

    Comment récupérer facilement l'ordre des items?
    Y a-t-il une façon plus simple d'obtenir un classement d'un utilisateur?


    Exemple:
    Par défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Fraise
    Banane
    Abricot
    Après classement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Abricot
    Banane
    Fraise
    Après soumission:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Fraise
    Banane
    Abricot
    Résultat attendu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Abricot
    Banane
    Fraise
    Merci de votre attention
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Difficile de te répondre si tu ne nous montre pas un gramme de ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Je respecte l'ordre: conception - réalisation. Tu voudrais que je te montre le code de quelque chose que je n'arrive pas à concevoir?

    Mes questions demeurent:
    Comment récupérer facilement l'ordre des items dans un <select>?
    Y a-t-il une façon plus simple d'obtenir un classement d'un utilisateur en php/html/javascript?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comment récupérer facilement l'ordre des items dans un <select>?
    Il n'y a pas 36 solutions : il faut le transmettre...
    Un select envoie au serveur les valeurs des options sélectionnées, il n'y a pas de notion d'ordre. Donc si tu veux une notion d'ordre, il faut envoyer l'ordre souhaité.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Y a-t-il une façon plus simple
    Plus simple que quoi ?
    Tu ne nous a rien montré et pas non plus expliqué comment tu faisais actuellement.

    Que fais ton javascript precisement ?
    Le but est de changer toute la liste ou seulement des éléments sélectionnés ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Il n'y a pas 36 solutions : il faut le transmettre...
    Un select envoie au serveur les valeurs des options sélectionnées, il n'y a pas de notion d'ordre. Donc si tu veux une notion d'ordre, il faut envoyer l'ordre souhaité.
    Par un champ hidden?
    Est-ce que je peux transmettre un tableau? Sinon, il faudra re-parser à réception... la galère.

    Citation Envoyé par sabotage Voir le message
    Plus simple que quoi ?
    Que d'utiliser un select (cf messages 1 et 3)

    Citation Envoyé par sabotage Voir le message
    Tu ne nous a rien montré et pas non plus expliqué comment tu faisais actuellement.
    C'est expliqué message 1. Tu voudrais que je fournisse la réponse à ma propre question?
    Citation Envoyé par sabotage Voir le message
    Que fais ton javascript precisement ?
    Il change l'ordre des items du select
    Citation Envoyé par sabotage Voir le message
    Le but est de changer toute la liste ou seulement des éléments sélectionnés ?
    Le but est de transmettre au serveur un ordre (une liste triée si tu préfères). La sélection n'a aucune importance.

    Serais-je le premier à avoir besoin que l'internaute fixe un ordre? Je ne trouve pas d'objet élégant pour le faire.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Par un champ hidden?
    Par exemple, mais comme te l'a déjà fait remarquer à raison sabotage, on ne peut pas te donner de conseils avisés si on ne sait pas comment est architecturée ton appli...
    Tu indiques que pour le moment, tu ne reçois pas l'ordre, ce qui sous entend que tu reçois quelque chose qui ne te convient pas.
    Le but est donc de t'aider à finaliser ce quelque chose et pour ça, on a besoin de voir comment tu procèdes actuellement !
    Tu dis que tu modifies l'ordre en JavaScript, mais on ne sait pas comment. Et comme il n'existe pas en JavaScript d'instruction changeOrdreCommeJeVeux, on peut en conclure que cet ordonnancement se fait à partir de code. Bref, beaucoup d'éléments de code autant client que serveur qui nous aideraient à t'aider.

    Bref, pour en revenir à l'idée de champ hidden, tu peux tout à fait, en JavaScript, créer un objet JSON (ou même un tableau) dont les clés seraient le rang et la valeur les valeurs des options. Ainsi, à chaque modification, tu recrées l'objet JSON, tu le sérialise (JSON.stringify()) et tu l'affectes à ton champ caché. Au niveau du serveur, tu n'as plus qu'à désérialiser (json_decode()) et tu as toutes les infos nécessaires pour ton truc.

    Quant à savoir si c'est possible de faire plus simple, on ne peut tout simplement pas le savoir puisque tu ne nous fournis aucun détail permettant de faire une espèce d'audit...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Nous somme dans la rubrique formulaire. Je vous demande ce que vous feriez, dans un formulaire, si vous vouliez que l'utilisateur donne un classement, un tri, un ordre (appelez-le comme vous voulez). Manifestement, vous ne feriez pas et vous seriez désemparés.


    En ce qui concerne le javascript pour modifier une option du select, on peut très bien faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.monformulaire.monselect.options[0].text="Nouvelle option";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.monformulaire.monselect.options[0].value=3;
    La méthode d'échange devient alors évidente.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Flodelarab
    vous ne feriez pas et vous seriez désemparés.
    C'est l'impression que te donne ma réponse ???

    Non, rassure-toi, si j'avais à le faire, je le ferais plutôt facilement en structurant mon code dans cette optique.
    Si j'avais à le faire à partir d'un code HTML / PHP existant, je ne serais pas beaucoup plus désemparé : je commencerais par regarder l'existant pour comprendre comment l'adapter au mieux au besoin.
    En revanche, tu as raison que si on me demande d'adapter un code existant sans avoir le droit de voir ce code, ça devient un peu plus déroutant, mais ça relève plus de la divination que de la programmation...

    Ceci dit, j'adore cette attitude qui consiste à envoyer bouler ceux qui essayent de t'aider sous prétexte qu'ils te demandent des infos permettant de t'apporter la meilleure solution...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Il n'y a pas de code, puisqu'il faut l'écrire

    Quand au fait d'"envoyer bouler", il faut le mettre en regard de l'attitude des forums qui répondent à une question par une question alors que tout est dans le message original. Cela ne sert qu'à faire couler une question.

    En l'occurence, vous êtes libre dans vos choix pour faire ce satané classement tant que c'est avec PHP/HTML/javascript.


    M'enfin bon. Je vais me débrouiller.

    Merci pour le temps que vous avez consacré.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Flodelarab
    M'enfin bon. Je vais me débrouiller.
    Tu plaisantes ou quoi ?
    Citation Envoyé par Bovino Voir le message
    Bref, pour en revenir à l'idée de champ hidden, tu peux tout à fait, en JavaScript, créer un objet JSON (ou même un tableau) dont les clés seraient le rang et la valeur les valeurs des options. Ainsi, à chaque modification, tu recrées l'objet JSON, tu le sérialise (JSON.stringify()) et tu l'affectes à ton champ caché. Au niveau du serveur, tu n'as plus qu'à désérialiser (json_decode()) et tu as toutes les infos nécessaires pour ton truc.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    • Désolé si je t'ai blessé
    • La solution du JSON me repoussait a priori. Mais à l'étude, c'est ptêt pas mal. Je ne savais pas que c'était utilisable en natif dans les navigateurs récents.


    Merci
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2012, 14h13
  2. [PHP-JS] CHECKBOX et SELECT dynamique
    Par lynxxx dans le forum Langage
    Réponses: 10
    Dernier message: 05/04/2007, 18h05
  3. [PHP-JS] Balises select dynamiques
    Par alliance dans le forum Langage
    Réponses: 2
    Dernier message: 18/08/2006, 12h18
  4. [Dates] Probleme de repertoire dynamique en PHP
    Par stomerfull dans le forum Langage
    Réponses: 1
    Dernier message: 13/01/2006, 12h17
  5. Select dynamique
    Par mandaillou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2005, 15h14

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