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] Changer la valeur de ma zone de texte selon ma liste+BD!


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut [PHP-JS] Changer la valeur de ma zone de texte selon ma liste+BD!
    Bonsoir,
    tout d'abord je suis désolée car le titre n'explique pas bien mon probléme.

    voici donc mon probléme :
    j'ai une liste dérolante (liste1) qui contient tout les services
    et j'ai aussi une zone de texte (txtChef) qui devra contenir le chef du service de la liste (liste1)
    j'ai 3 tables :
    - Services('idService','Libelle')
    - Membres('idMembre','Nom')
    - Statut('idService','idMembre','statut')
    donc j'aimerais qu'apres le changement du service dans la liste il m'affiche dans (txtChef) le chef du service sans recharger la page et sincerment je pige rien en AJAX.

    voici quelques bouts de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          <select name="liste1" id="liste1" onchange="">
            <?php
    		$reponse = mysql_query("SELECT * FROM Services");
    		while($row = mysql_fetch_object($reponse))
      		{
          		echo "<option value='$row->idService'>$row->Libelle</option>";
       		}
    		?>
          </select>
          <input type="text" name="txtChef" id="txtChef"/>
    et merci pour tout l'aide que vous m'apporter sur ce forum

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Ne rien piger d'Ajax, signifie-t-il que tu ne désires pas l'utiliser ou que tu aimerais que l'on te l'explique?
    Si tu ne désire pas l'utiliser, il est possible de charger des arrays javascripts avec tes données au chargement de la page. Et jouer avec tes arrays javascripts lors de chaque sélection dans ta liste1.
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par Ouach
    Ne rien piger d'Ajax, signifie-t-il que tu ne désires pas l'utiliser ou que tu aimerais que l'on te l'explique?
    je cherche simplement un exemple qui me permet de traiter mon cas en AJAX si possible car la solution des tableaux j'ai déja pensé a ca mais est-ce qu'il y a pas une meilleure façon de faire

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Un forum de discussion ne semble pas l'endroit approprié pour expliquer de A à Z comme fonctionne Ajax. Il y a de nombreux tutoriaux pour cela.
    D'autre part, si tes données sont statiques (qui ne doivent pas varier entre chaque refresh), la technique des Arrays javascript est une solution. Tu dois associer 3 données: l'ID du service, son libellé et le nom du chef de service.
    Tu pourrais faire (attention, je n'ai pas testé, c'est la principe que j'énonce ici)
    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
     
      <SCRIPT type='javascript'>
      var serviceList = new Array();
      function toDoOnLoad()
      {
    <?php
      $reponse = mysql_query("SELECT Services.idService as idService,libelle,nom FROM Services, Membres, Status WHERE Service.idService = Status.idService AND Status.idMembre = Membres.idMembre");
      while($row = mysql_fetch_object($reponse))
      {
        print("serviceList[".$row->idService."] = {".$row->libelle.",".$row->nom."};\n");
        print("document.getElementById(\"liste1\").add(new Option(\"".$row->idService."\", \"".addslashes($row->libelle)."\", false, false), 1);\n");
      }
    ?>
      function selectOnChange()
      {
        document.getElementById("txtChef").value = serviceList[document.getElementById("liste1").value][1];// le [1], c'est pour retrouver le nom du chef
      }
    </SCRIPT>
    <BODY onload="toDoOnLoad()">
    ...
    <SELECT ID='type' NAME='type' onChange='selectOnChange()'>
    ...
    De tel sorte que tu te retrouves avec une Array javascript (serviceList) contenant le libellé[0] et le nom[1] du chef et indexé avec l'id du service ET d'un <SELECT> avec des <OPTION> dont la value = idService et le texte = libelle. Et quand on clic sur une option, on exécute la fonction selectOnChange() qui ira retrouver le nom du chef grâce à l'indexe de serviceList.
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Pour le <SELECT>, je n'ai pas été complet, j'aurai dû écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT ID='liste1' NAME='liste1' onChange='selectOnChange()'>
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Merci Ouach pour ton aide
    ta solution na pas marché mais je me suis inspiré pour trouver ma solution.

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

Discussions similaires

  1. [PHP-JS] Renvoi de valeur d'une zone de liste
    Par illight dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2007, 14h34
  2. Réponses: 40
    Dernier message: 24/02/2006, 14h19
  3. Réponses: 13
    Dernier message: 22/12/2005, 02h14
  4. Réponses: 1
    Dernier message: 02/12/2005, 05h18
  5. Réponses: 6
    Dernier message: 30/09/2005, 16h24

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