Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Selection fine dans une boite a liste [ JavaScript Orienté objet (POO) / Divers ] (blutch38)

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é 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 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 recuperer la selection d'une liste deroulante [ par jowaylila ] bonjours, je travaille avec j2ee(struts),j'ai une liste deroulante et je doix recuperer la valeur selectionnée pour l'utiliser comme parametre dans 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


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.