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 :

[PHP-JS] Modification et rafraichissement par menu deroulant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut [PHP-JS] Modification et rafraichissement par menu deroulant
    Bonjour à tous !
    Je m'appelle Julien, je suis étudiant en informatique et robotique sur PERPIGNAN,
    en ce moment je suis en train de développer une application "web" en php/SQL etc...
    Aussi j'aurai besoin de vos lumières

    Voici mon problème, sur une page php j'ai un formulaire qui renvoie les données en POST vers une autre page (trop lourd à gerer sur la même page)
    Sur ce formulaire il y a entre autre deux menus déroulants à la suite.

    Je voudrais que lorsque on choisi une option dans le premier, la page se "rafraichisse", se recharge en affichant en deuxième menu un autre menu qui aura ses choix limité en fonction du choix du premier menu.

    Mes menus sont construits à partir de requêtes SQL par exemple :

    - pour $machine->MenuDeroulant()
    C'est juste un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `machine`;
    - tandis que pour $machine->MenuDeroulant2($id_groupe)
    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM  `machine` WHERE id_groupe = '".id_groupe."';
    voici en exemple de code simplifié :

    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
    <?php
    echo "<FORM method=\"POST\" name=\"action\" action=\"./traitement.php\">";
    echo "<INPUT type=\"hidden\" name=\"class\" value=\"incident\">";
    echo "<INPUT type=\"hidden\" name=\"action\" value=\"".$action."\">";
    echo "<INPUT type=\"hidden\" name=\"id_incident\" value=\"".$id_incident."\">";
    
    ....
    
    $groupe->MenuDeroulant() //<= renvoie un "$id_groupe"
    
    ...
    
    //Si $id_groupe defini (lors du choix du menu precedent)
    $machine->MenuDeroulant2($id_groupe)
    //Sinon
    $machine->MenuDeroulant()
    
    ...
    
    echo "</FORM>";
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com
    J'avais pensé à couper le <FORM action=\"traitement> en y mettant un autre form mais je ne
    à "./traitement.php"
    Un truc du style:
    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
     
    echo "<FORM method=\"POST\" name=\"action\" action=\"./traitement.php\">";
    ....
    echo "</FORM>";
    echo "<FORM method=\"POST\" name=\"action\" action=\"$_SERVER['PHP_SELF']">";
    $groupe->MenuDeroulant() //<= renvoie un "$id_groupe"
    echo "</FORM>";
     
    echo "<FORM method=\"POST\" name=\"action\" action=\"./traitement.php\">";
    $recup_id_grp = $_POST['id_groupe'];
    if (isset($recup_id_grp))
    $machine->MenuDeroulant2($id_groupe);
    else
    $machine->MenuDeroulant();
     
    ....
    echo "</FORM>";
    Merci par avance de vos avis eclairés ! parce que la...

  2. #2
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut un début de solution peut être ...
    Je viens de voir ce topic qui ressemble un peu mais dans mon cas je ne doit pas perdre le id_groupe est le renvoyer à "./traitement.php"

    http://www.developpez.net/forums/sho...d.php?t=176060

    En gros comment marche un
    onChange="submit();
    au point de vue de ma page PHP ??
    il faut le mettre dans le "<select>" puis il m'initialise la variable "$id_groupe" qui est dans mon formulaire ?
    Je précise que le code du menu déroulant et du formulaire sont sur des pages différentes vu que le menu déroulant je l'affiche par une méthode ...

  3. #3
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut a flûte
    Le submit me valide tout mon formulaire ce n'est pas du tout ce que je veux....
    Je veux juste changer une variable dans la page du formulaire en fait

  4. #4
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    Ou alors faire une fonction en Javascript qui récupère l'élément du menu déroulant et la renvoie dans la page du formulaire mais il me faudra réactualiser celui-ci après...
    Cependant si quelqu'un a une idée comment faire ici merci de m'en parler, sinon je poserai la question dans la partie Javascript

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Je me permets de me joindre à ton monologue

    J'avoue que j'ai pas compris grand chose, cependant j'ai l'impréssion que les choses suivantes sont des pistes :
    - voir du côté de JavaScript (tu as déjà commencé) mais je connais pas trop personnellement
    - tu peux passer une variable à une page en faisant mapage.php?variable=valeur et en récupérant la valeur avec $_GET['variable'], une astuce consiste aussi à rediriger vers la page en cours avec la variable en plus
    - pour tester si une variable existe il y a isset (par exemple lors du premier chargement la variable n'existe pas ce qui implique un traitement, lors de la redirection elle existe donc traitement différent
    - à propos de redirection : http://php.developpez.com/faq/?page=...ts_redirection
    - peut-être aussi que les champs cachés (INPUT TYPE=hidden) pourraient t'être utiles.

    Bon c'est vraiment en vrac mais ça peut peut-être aider... Sinon essaie de simplifier au max ton problème et de bien expliquer pour avoir des réponses plus concises

  6. #6
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut merci !
    Merci de me tenir compagnie,
    Pour simplifier je suis déjà dans un formulaire qui envoi déjà les données vers "./traitement.php" donc je ne puis utiliser des submit() car ça m'enverrai tout vers traitement.php

    Je veux juste que quand je choisi un truc sur le premier menu déroulant la variable $id_groupe prenne la valeur de ce que j'ai selectionné et afficher mon deuxième menu déroulant avec cette fois en paramètre ce fameux $id_groupe

    j'avais pensé au JavaScript mais si je fait un script et que je l'appelle dans le code du menu déroulant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (par ex <select onChange=monScript($id_groupe); > )
    comment le faire passer sur la page de mon formulaire ?

    Merci
    Juju

  7. #7
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Peut-être que tu peux faire une redirection JavaScript (voir le lien de mon post précédent) vers la page de ton formulaire avec tapage.php?id_groupe=valeur_id
    Quand tu charges ton formulaire tu regardes si la variable $_GET['id_groupe'] existe (cf mon post), si c'est le cas alors tu fais le traitement.
    En fait j'avais pas trop mal compris donc mon premier post est pas 100% HS

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/10/2013, 15h22
  2. Modification .js d'un menu deroulant, je ne trouve pas la solution
    Par spectrom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/08/2011, 16h54
  3. Modification du placement du menu par CSS
    Par dlamo dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 23/07/2007, 11h59
  4. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59
  5. Réponses: 8
    Dernier message: 31/05/2006, 10h28

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