begin process at 2012 02 14 08:30:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

Selection fine dans une boite a liste


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Selection fine dans une boite a liste

mercredi 29 novembre 2006 à 12:05:46 | Selection fine dans une boite a liste

blutch38

bonjour,
je souhaiterai que dans la boite a liste les données provienne d'un champ d'une base de donnée
 
j'ai fait :  
 

Code:

<form name="formulaire" action="#">
Entrez les premières lettres du pays, une sélection sera proposée.
<input type="text" name="entree" size="30" onKeyUp="javascript:lettre.maj();">
<!-- Notez que sur l'événement onKeyUp (relâchement de la touche du clavier) on exécute la fonction maj() -->
<select name="liste" size=3>
<?
//Requete pour remplir la liste déroulante
$SQL = "SELECT * FROM MATIERE ORDER BY Desing_Mat";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
   $valeur = $val["Desing_Mat"];
   echo "<option value>".$valeur;
   }
//----------------------------------------
?>

les donnée s'affichent bien dans la boite a liste mais des que je commence a tapper une lettre dans la zone de saisie, tout s'efface
 
merci de votre aide !
lien du script : http://www.java.scripts-fr.com/scripts.php?js=25  (jespere que cela ne pause aucun probleme vu que le script vien d'un autre site ? de toutes facon c'est du code libre ^^)
 
pi si c'est pas trop demandé (en bonus !) comment faire pour lorsque qu'on selection une donnée dans la boite a liste récupéré la ligne complete de la table ? avec l'action Onclick je suppose ? il faudrai que je recupere le champ Ref_Mat (dans une variable) situer dans cette table lors de ce click.


To be awe ... It's The Life ! ;)

To be awe ... It's The Life ! ;)
mercredi 29 novembre 2006 à 12:34:18 | Re : Selection fine dans une boite a liste

bultez

Membre Club




Bonjour,

   le même genre de script existe ici
   mais sur le lien donné ça fonctionne,
      et ton extrait ne semble pas en cause, quoique ? 
      l'erreur est probablement ailleurs.
      à propos, comment peut-on voir d'où vient le problème si
         on n'a pas la base de données déjà ???
      met nous ici un extrait de la page html générée, pas le php !
      ( un extrait, là où ça pêche, pas 598368 lignes )


                              Cordialement             Bul       [mon Site]    [M'écrire]
mercredi 29 novembre 2006 à 13:06:57 | Re : Selection fine dans une boite a liste

blutch38

[code]
<html>
<head>
<title></title>
<?
   include '../connexion.php'; //Ajout de la connexion à la base de données
 ?>
<script type="text/javascript">
<!-- Debut

function initialisation()
{
lettre = new NomObjets('formulaire','liste','entree');
lettre.bldInitial();
}

/*
Dans cette fonction, on crée avec l'opérateur spécial new un objet lettre en lui définissant la fonction NomObjets . Cet objet contient le nom de notre formulaire (ici formulaire), le nom de notre liste déroulante (ici liste) et le nom du champ texte (ici entrée).
Une fois ceci fait on execute la fonction bldInitial() en lui concatenant l'objet créé
*/

function NomObjets(formname,selname,textname,str)
{
this.formname = formname;
this.selname = selname;
this.textname = textname;
this.select_str = str || '';
this.selectArr = new Array();
this.initialize = initialize;
this.bldInitial = bldInitial;
this.maj = maj;
}

function initialize()
{
if (this.select_str =='')
// Si la variable select_str est vide, en gros si il n'y a rien de sélectionné


 {
 for(var i=0;i<document.forms[this.formname][this.selname].options.length;i++)
/*
On ouvre une boucle avec l'instruction for jusqu'à que i soit inférieur au nombre de valeur "<option>" restantes. Ceci est effectué en utilisant la propriété length associée à la propriété options de l'objet select (retourne un tableau correspondant aux options (élément <OPTION>)). Gardez bien en mémoire cette syntaxe car elle est réutilisée un peu partout plus bas.
*/

 

  {
  this.selectArr[i] = document.forms[this.formname][this.selname].options[i];
  this.select_str += document.forms[this.formname][this.selname].options[i].value+" : "+document.forms[this.formname][this.selname].options[i].text+",";
  }

 }

else
 {
 var tempArr = this.select_str.split(',');

 for(var i=0;i<tempArr.length;i++)
  {
  var prop = tempArr[i].split(':');
  this.selectArr[i] = new Option(prop[1],prop[0]);
  }
 }
return;
}
function bldInitial()
{
this.initialize();
/* Au commencement de cette fonction, on exécute la fonction initialize().*/
for(var i=0;i<this.selectArr.length;i++)
/* On ouvre une boucle jusqu'à que i soit inférieur au nombre d'éléments du tableau selectArr.*/
document.forms[this.formname][this.selname].options[i] = this.selectArr[i];
/* On réécrit nos "<option>" avec ce que contient le tableau selectArr.*/
document.forms[this.formname][this.selname].options.length = this.selectArr.length;
/* et on donne autant d'option que contient notre tableau selectArr.*/
return;
// puis on renvoie le tout
}

function maj()
{
var str = document.forms[this.formname][this.textname].value;
// On donne a la variable str la valeur du champ texte.

if(str == '') { this.bldInitial();return; }
// si la variable str est vide, on execute la fonction bldInitial()

this.initialize();
// on execute la fonction initialize()

var j = 0;
// on ouvre une variable j et on y met 0

pattern1 = new RegExp("^"+str,"i");

for(var i=0;i<this.selectArr.length;i++)

if(pattern1.test(this.selectArr[i].text))

document.forms[this.formname][this.selname].options[j++] = this.selectArr[i];

document.forms[this.formname][this.selname].options.length = j;
 {
 document.forms[this.formname][this.selname].options[0].selected = true;

 }
}

// Fin -->
</script>

</head>
<body OnLoad="javascript:initialisation()">
<!-- au chargement de la page, détecté par l'événement OnLoad, on exécute la fonction initialisation(). -->


<form name="formulaire" action="#">
Entrez les premières lettres de la matiere.
<input type="text" name="entree" size="30" onKeyUp="javascript:lettre.maj();">

<select name="liste" size=3>
<?
//Requete pour remplir la liste déroulante
$SQL = "SELECT * FROM MATIERE ORDER BY Desing_Mat";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
   $valeur = $val["Desing_Mat"];
   echo "<option value>".$valeur;
  
}
//----------------------------------------
?>
    </option>
</select>
</form>

</body>
</html>
[/code]

base de donnée : table MATIERE
Ref_Mat:medint (PK)
TYPE_MAT_Nro_Type_Mat:Int (FK)
Desing_Mat:vachar
Pu_Mat:Decimal(6,2)
...


la connexion a la base de donnée se passe bien
To be awe ... It's The Life ! ;)

mercredi 29 novembre 2006 à 16:33:45 | Re : Selection fine dans une boite a liste

blutch38

Réponse acceptée !
Bon ba jy suis arrivé a l'aide d'un autre script, beaucoup plus facile dutilisation !
si vous étiez dans le meme cas que moi et que vous y arrivé pas, un petit mp et je vous aidrai volontier.
:)

To be awe ... It's The Life ! ;)
mercredi 29 novembre 2006 à 16:43:37 | Re : Selection fine dans une boite a liste

bultez

Membre Club
>>jy suis arrivé a l'aide d'un autre script, beaucoup plus facile dutilisation !
   pas étonnant... j'avais commencé un peu décortiquer, mais il me fallait un peu plus de temps...
   tu as bien fait. celui que je te citais, par exemple, est simplissime

                              Cordialement                Bul          [
mon Site ]    [ M'écrire ]
pourquoi faire simple quand on peut faire compliqué ?


Cette discussion est classée dans : donnée, liste, boite, selection, mat


Répondre à ce message

Sujets en rapport avec ce message

selection de tous les elements d'une liste [ par ManX ] Dans un formulaire, j'ai fait une carte de France sur laquelle on peut cliquer sur chaque departement.Le fait de cliquer ajoute le departement dans un Style différent dans une liste déroulante [ par salley ] Bonjour tous le monde,J'aimerais savoir comment appliquer un style different pour chaque selection de ma liste deroulante.J'ai essayer bien sur d'ajo liste déroulante et boite flottante [ par mary07 ] coucou à tous,   Je fais appel à tous ces cerveaux bien re Récupération valeur dans liste de selection dynamique [ par jyhes ] Bonjour,C'est certainement un grand classique, mais toutes mes recherches sont restées infructueuses. Ou alors j'ai mal cherché, désolé.Qui fait sa BA comment recuperer la valeur d'une selection liste deroulante dans variable php [ par fredericmaill ] Bonjour et bonne année 2006 @ tous !!je voudrais savoir comment recuperé dans une varable php la valeur de la selection d'une liste deroulante, j'ai f Remplir un comboBox par une liste [ par wagdifr ] Salut, je travail sous l'environnemnt Lotus Notes.Dans ma methode Test() j'ai une liste dans la quel j'ai récupérer des donnée d'une base de donnée. C selection dans une liste multiple --> un textarea [ par Diafwl1 ] Bonjour à tous !!!J'ai une liste, un textarea et j'aimerai que les valeurs selectionnées dans la liste s'affichent (ou s'effacent) dans le textarea.Ma liste de selection [ par amenesca ] Bonjour à tous, Mon formulaire (en php) contient des champs de texte à remplir ainsi qu'une liste de sélection.je voulais changer la deuxième partie d ajouter un button automatiquement [ par joujma5 ] Bonjour, J'ai utilisé un code qui permet la création d'un select automatique après la sélection d'une catégorie, dont voici le code: list_choix = liste deroulantes et information de liste instantanée [ par gabs77 ] bonjour, je suis en trin de faire un formulaire avec une liste deroulantes afin de proposer un eventail de choix, or pour avoir des informations sur l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,480 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales