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 :

[Tableaux] Initilisation liste de choix


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut [Tableaux] Initilisation liste de choix
    Bonjour,

    J'ai une liste de choix que j'initialise avec des elements d'une des tables de ma base de donnees par l'intermediaire d'une requete. Apres avoir selectionne un element de ma liste les elements de mon formulaire sont mis à jour (plusieurs requetes sont effectuées et je réalise un submit). A chaque fois que ma page se recharge (apres le submit) la requete permettant de mettre à jour la liste de choix est executee. Je souhaiterai savoir s'il est possible de ne pas reexecuter cette requete et de conserver les elements de la liste de choix sans avoir a la reinitialiser par la requete. Le luxe suppreme serait aussi de pouvoir conserve l'element selectionne ( je pense qu'il faudrait utliser une fonction javascript dans ce cas ...?)

    Merci !

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Peux tu être plus explicite ou montrer un bout de code car là je n'ai pas tout saisi.

    Pour ne pas éxécuter la requete la requête après ton submit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // s'il s'agit d'une méthode post ou remplace par get le cas échéant
    if(!isset($_POST) 
    {
        ...
        place ta requête ici
        ...
    }
    ...
    la suite de ton code.

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    voici une partie de mon code :

    fichier formulaire_DB.php

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <html>
    <LINK REL=stylesheet HREF="Style_Form.css" TYPE="text/css">
     
    <!-- script java : on recupere l'index de la couche selectionne afin de mettre a jour le formulaire --!>
     
    // recuperation du libelle selectionne dans la liste de choix
     
    <script type="text/javascript" language="javascript">
    function getSelectedIndexLibelle() 
    {
       s1 = document.getElementById('lst_libelle');
       return s1.selectedIndex;
    }
    </script>
     
    <BODY>
    <?php
     require "cFormulaire.php";
     
       // action
      if (isSet($_POST['lst_libelle']))  $libelle = $_POST['lst_libelle'];
      else $libelle = NULL ;
     
    ...
    // initialisation de la liste de choix
     
    // requete permettant de recuperer les elements de la liste de choix
     $r_Libelle  = $request->RequestAllElement("SELECT REF_DATA,Libelle FROM tdata"); 
     
       for ($k=0 ; $k<count($r_Libelle) ;$k++)
       {
            	// memorisation de tous les libelles
             	$list[$k][0] = $r_Libelle[$k][0];
    	$list[$k][1] = $r_Libelle[$k][1];
       }
     
    // appel de la fonction creant le control
     $form->champList("lst_libelle",$list,"","4","OnChange='this.form.submit()'");
    ...
     
    // fonction creant le controle liste (code se trouvant dans une autre classe)
    // balise inserer apres :
    <FORM  METHOD='POST' ACTION='formulaire_DB.php' NAME='Text'>
     
      function champList ($nom, $liste, $defaut, $taille,$evenement)
      {
         $s = "<SELECT NAME=\"$nom\" $evenement  VALUE = $liste      SIZE=$taille>\n "; 
     
          for ($i=0 ; $i<count($liste) ; $i++)
          {
            	//$s : chaine de caractere concatene au fur et a mesure
            	//$val : cle
            	//$libelle : libelle associe
     
            	$val = $liste[$i][0];
            	$val = htmlSpecialChars($val);
            	$libelle =  $liste[$i][1];
           	$defaut = htmlSpecialChars($defaut);
     
           	if ($val != $defaut)
    // on a change value par libelle au lieu de val
    	  $s .=  "<OPTION VALUE=\"$val\">$libelle</OPTION>\n";
            	else
    	  $s .= "<OPTION VALUE=\"$libelle\" SELECTED>$val</OPTION>\n";
          	}
       	 $s = $s . "</SELECT>\n";
        	return $s;
      }
    ?>
    Je voudrais mémoriser le contenu de $list apres le submit sans passer par la requete.

    Voila j'espere avoir ete un peu plus clair

Discussions similaires

  1. [XL-2007] Creation tableaux remplissage auto. selon choix liste deroulante
    Par Timepiece dans le forum Excel
    Réponses: 2
    Dernier message: 19/06/2014, 00h11
  2. Coder des une liste de choix multiples pour Tableaux croisés
    Par piflechien73 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2011, 22h04
  3. Réponses: 2
    Dernier message: 24/05/2006, 19h26
  4. Réponses: 10
    Dernier message: 04/05/2004, 16h00
  5. liste de choix
    Par fredmessenger dans le forum ASP
    Réponses: 11
    Dernier message: 03/09/2003, 08h27

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