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 :

[AJAX] Rafraichissement de formulaire et PHP


Sujet :

JavaScript

  1. #1
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut [AJAX] Rafraichissement de formulaire et PHP
    Bonjour a tous !
    J'espère que vous avez passé une bonne journée car moi ma journée c'était moyen, mais je me permet de venir vous embéter un petit coup.

    J'ai un problème à résoudre et je sais pas comment faire. Je vais d'abord vous expliquer en gros et après je détaillerais.
    Alors j'ai un formulaire avec trois SELECT en HTML. Les Values contenu dans ces Select sont créer à l'aide de requête vers MySQL. Leurs contenu et dynamique.

    Et en gros je voudrais que lorsqu'on selectionne dans le premier Select par exemple la value="1" je voudrais que le second Select fasse ceci:
    SELECT * FROM EPREUVE WHERE idmanifestation=$valuedupremierSelect

    Bon voilà la théorie je vais vous montrer ce que j'ai fait maintenant:
    Dans mon Modèle logique de données j'ai 4 tables

    MANIFESTATION(idmanifestation,...)
    EPREUVE(idepreuve,...)
    ETUDIANT(idetudiant,...)
    CONTENU(idmanifestation,idepreuve)

    Le but de mon formulaire c'est d'ajouter des etudiant à une épreuve dans une manifestation.
    Vous voyez le problème qui es que si je sélectionne une manifestation cela doit sélectionner les épreuves de cette manifestation. Sinon il y a une erreur de sémantique.

    Bon tous cela pour vous expliquer mon problème je n'y connais rien en Javascript et AJAX et je voudrais savoir si on pouvait le faire, et si oui pourriez vous m'expliquer si possible. Merci je vous adore si vous faites cela pour moi

    Voilà le code du formulaire:
    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
     
    <form method=post action="ajout.php">
    <select name="Nom_de_la_selection" size="1" multiple="multiple"> 
    <?php
     
    $db = mysql_connect('localhost', 'login', 'password')  or die('Erreur de connexion '.mysql_error());
     
        mysql_select_db('nom_de_la_base',$db)  or die('Erreur de selection '.mysql_error());
     
    $sql="SELECT * FROM MANIFESTATION";
     
    //Bon je passe le code içi mais j'affiche les option du select avec PHP
     
    ?>
    </select>
     
    //Le problème viens pour le second select qui doit s'actualisé par rapport aux choix du premier Select et là j'ai besoin de votre aide
     </form>

    Merci pour tous

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    Bonsoir,

    Ta question est un peu vaste, je vais essayer de te tracer les grandes lignes, mais il faudra t'aider des tutoriaux pour les instructions exactes et la syntaxe.

    1. Oui, ce que tu veux faire est possible mais nécessite d'utiliser Ajax. Si tu n'as vraiment aucune connaissance en Ajax commence par là http://gael-donat.developpez.com/web/intro-ajax/

    2. En gros ton code va se diviser en trois éléments, l'idéal serait de les séparer dans des fichiers différents.
    - Un code (x)html (tes balises select).
    - Un code javascript (à lier à ta page (x)html).
    - Un code php autonome.

    3. La page (x)html (je ne t'écrit que tes balises select) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <select name="nom_select_un" onChange="changement_select()">
    <option value="valeur1"></option>
    .....
    <option value="valeurn"></option>
    </select>
    <select name="nom_select_deux"></select>
    4. La page javascript :
    Pour cette page le principe est simple tu as une fonction à déclarer :
    - changement_select() (ou tout autre nom que tu voudras à partir du moment ou c'est le même que dans le onChange du select).
    Le principe de cette fonction est détaillé dans le tutoriel, je ne vais pas paraphraser.
    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
     
    var xhr=null;
        if (window.XMLHttpRequest){ 
            xhr=new XMLHttpRequest();
        }
        else if (window.ActiveXObject){
            xhr=new ActiveXObject("Microsoft.XMLHTTP");
        }
    else{
    alert("Ajax n'est pas supporté par votre navigateur.");
    }
        xhr.onreadystatechange=function(){
     var xml=xhr.responseXML;
            document.getElementsByName("champs_select_deux")[0].options.length=0;
            for(var i=0;i<xml.getElementsByTagName("champs").length;i++){
              var option=xml.getElementsByTagName("champs")[i].firstChild.nodeValue;
              document.getElementsByName("champs_select_deux")[0].options[i+1]=new Option(option,option);
            }
    };
    var champs_select_un=getElementsByName("champs_select_un")[0].selectedIndex.value;
        xhr.open("GET","page_php?champs="+champs_select_un,true);
        xhr.send(null);
    5. Et enfin ta page php doit effectuer les requêtes sur ta table en récupérant la variable passée par le javascript précédent en get et stockée dans la variable champs.
    Soit en gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $champs1=$_GEThamps"];
    echo "<?xml version=\"1.0\"  encoding=\"ISO-8859-15\" ?>
    <racine>";
     
    /* Faire ta requête php de sélection des éléments à afficher ici et pour chaque élément utiliser l'echo suivant. */
     
    echo "<champs>$reponse_sql(n)</champs>";
     
    echo "</racine>";
    6. C'est normallement tout. Ne copie pas tout simplement ce code, il est à personnaliser et ne devrait pas fonctionner en tant que tel. Lit le tuto et si tu rencontre des problèmes lors de l'application poste à nouveau.

    7. Oublie l'utilisation d'Ajax si tu ne connaît rien au javascript, au xml et au dom. Ou apprends les.

    8. Attention ceode n'est compatible qu'avec internet explorer, en effet Ie et Firefox gèrent les fichiers Xml différement. On peux rendre ça compatible mais c'est un tout autre sujet. Essaie déjà d'appliquer ça et de faire fonctionner ton code sous Ie.

    Bon courage,

  3. #3
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    Merci pour tous !
    Bon j'y suis arrivé et je me suis plongé dans le XML et JAVAscript.
    Pour te dire le code marche sur Firefox et IE. vu que je boss toujours sous linux et je test sous IE après. Cela marche sur les deux.

    Bon merci pour tous.
    Je suis désolé de ne pas avoir regardé les tutoriaux avant j'ai posté sans regardé désolée.


    Bonne fin de journée.

    Sujet résolu

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    Content si j'ai pu t'aider

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/10/2013, 15h22
  2. [AJAX] Comment envoyer le formulaire en AJAX sur la page addticket.php ?
    Par emayen01 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/02/2009, 17h38
  3. [MySQL] Filtre via formulaire HTML/PHP dans Base mySQL
    Par Al3x dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/01/2006, 16h27
  4. Recuperer les données d'un formulaire en PHP
    Par mekdar dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2005, 15h41
  5. récupérer une valeur d'un formulaire en php
    Par feten dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/11/2005, 13h29

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