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

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    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 éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    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 éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    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 éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    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
    Points : 3 115
    Points
    3 115
    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 éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    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
    Points : 3 115
    Points
    3 115
    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

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Ah oui et je récupère la valeur de mon select grâce à :
    http://javascript.developpez.com/faq...amps#valSelect

    Mais ce que je ne saisie pas trop c'est comment va faire ce script en javaScript qui sera donc sur le code du menu déroulant des groupes pour récupérer cette valeur ?
    car "groupe" est une classe et menuDeroulant un de ses méthodes ?

    J'ai pensé a un truc, dans la méthode du menuDeroulant je mets :
    <SELECT name=\"id_groupe\" onChange=\"refreshForm();\">

    et voici le code de refreshForm() :

    <script type="text/javascript" language="javaScript">
    function refreshForm()
    {
    //je recup l'id selectionné
    $myIdGroupe = document.getElementById('id_groupe').options[document.getElementById('id_groupe').selectedIndex].value;
    //Je refresh la page du formulaire
    document.location = '../../admin/index.php?action=ajouter&class=incident&id_groupe=$myIdGroupe';
    }
    </script>
    Mais ce ne marche pas

  9. #9
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    Je pense que c'est la bonne voie, malheureusement je ne vais pas pouvoir t'aider pour les problèmes JavaScript, en postant un topic pour ça dans le forum approprié tu auras sûrement des réponses Tiens moi au courant quand même.

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Bon avec :

    <SELECT name=\"id_groupe\" onChange=\"refreshForm(this.options[this.selectedIndex].value);\">

    et ça comme code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript" language="javaScript">
    function refreshForm(value_id)
    {
    //Je refresh la page du formulaire
    document.location = './index.php?action=ajouter&class=incident&id_groupe='+value_id;
    }
    </script>
    ça marche merci quand même !
    par contre je ne sais pas comment planquer mon code javascript dans ma page car j'utilise un header quelque part mais ça plante à cause du code javascript

  11. #11
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    Cool. Pour le JS je sais qu'il y en a qui mette ça dans des fichiers séparés avec .js en extension, je sais pas si ça résoud le truc...

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    J'ai essayé aussi mais ca marche pas...

    edit:
    c'est à dire qu'en HTML on fait :

    <script type="text/javascript" src="mon_fichier_script.js"></script>

    mais en PHP ?

    j'ai testé :

    echo "<script type=\"text/javascript\" src=\"mon_fichier_script.js\"></script>";

    et ça marche toujours pas

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Je pense que le problème viens dès / car lorsque je met la ligne en commentaire avec // ça merdouille

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

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Bon finalement j'ai resolu mon problème, j'ai mis le code du script entre les balises html de mon ./index.php

    Je ne savais pas qu'ainsi le JavaScript etait "mémorisé" pour tout le reste du code même pour des classes et tout, c'est bon à savoir....

    Voila auto-résolu ! et merci JWhite !

  15. #15
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    Il en va sans peine.



    Bon courage pour la suite

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Points : 17
    Points
    17
    Par défaut
    bonjour, je remonte ce topic, parce qu'en moment je suis entrain de faire un triple menu déroulant, le second dépend du premier et le troisième dépend du second !!!

    je me suis rendu compte que cela fonctionnait sous IE mais pas sous firefox !!!

    avez vous déjà eu ce soucis avec une fonction ajax pour transmettre les valeurs à la base ???

    merci

+ 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