rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[javascript]listes déroulantes liées par BDD

Posté par konteriano, le jeudi 10 mai 2007 à 12:19:25
Bonjour tous le monde.

Voila je suis en train de développer une application en php permettant une gestion de stock. J'utilise access 2000 comme base de données.

Mon problème, c'est que je souhaite créer des listes déroulantes liées entre elles. Ces listes doivent etre construite dynamiquement les unes en fonctions des autres. j'ai déjà trouvé des exemples sur le net mais avec des listes static.

Ma question est donc est ce que je peux avoir accés à ma base de données à partir du javascript? si oui, comment faut-il faire? sinon y a t'il un autre moyen?

Merci d'avance.
Configuration: Windows 2000
Firefox 2.0.0.3
Répondre à konteriano  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ixtobilly, le jeudi 10 mai 2007 à 15:11:33
<script language="javascript">
// Sert a interroger une base de donne mysql sans envoi direct de donnees vers le serveur
// ceci est utile pour les controle "listbox" dynamique
// Auteur : AMOIKON Georges Wilfrid alias Willy alias ixtobilly( inspiré dun code pris sur le net www.toutjavascript.com)

function request05(f, fichier, elem1, elem2)
{

var l1  = f.elements[elem1];
var l2  = f.elements[elem2];

var index = l1.selectedIndex;
if(index < 1)
   l2.options.length = 0;
else {
   var xhr_object = null;
	
   if(window.XMLHttpRequest) // Firefox
      xhr_object = new XMLHttpRequest();
   else if(window.ActiveXObject) // Internet Explorer
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
   else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      return;
   }

   xhr_object.open("POST", fichier, true);
	
   xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4)
         eval(xhr_object.responseText);
		// alert(xhr_object.responseText);
   }

   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   var data = elem1+"="+escape(l1.options[index].value)+"&a­mp;form="+f.name+"&select="+elem2;
   xhr_object.send(data);
   // alert(data);
}

}	// fin de la fonction


</script>

 // Dans ta feuille principale :

<form name=form1 action='post'>
<? 

 
  
// initialisation de la requete
$sql = "select CODEDIRECTION, LIBELLEDIRECTION from direction order by  LIBELLEDIRECTION desc"; // permet d'extraire les codes des Direction de ma BD (Mysql)
// mise en ex&eacutecution
// Ne pas oublier les instructions (Toi tu utilises ACCESS dc peut être un peut différent)
 // $liste = $resultat_sql;
 
// exploitation des resultats   
?>
  <select name="direction" id="direction" onChange="request05(this.form,'departement.php','direct­ion','departement');" >
   <option value="" selected="selected"></option>
 <?    if (is_array($liste)) 
	  foreach ($liste as $c => $record)
		echo "<option value=$record[0] selected>$record[1]</option>";
  ?>
 </select> 

<select name="departement" id="departement" >

	</select>

 </form>
 // Fin de ta feuille principale
 
 
 
 
?>


<?php 

// Debut de departement.php
 
// Tu insères dans cette variable ta requête - Elle est à adapter bien sure - 

$query  = "select `CODEPARTEMENT`,`LIBELLEDEPARTEMENT` from `departement` where `CODEDIRECTION` ='".$_POST["direction"]."' order by `LIBELLEDEPARTEMENT` desc"; 

// exploitation des resultats   
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].ele­ments["'.$_POST["select"].'"];';
echo 's.options.length = 1;';

// mise en ex&eacutecution
$liste = $ObjVehicule->selectRecords($query); (selectRecords retourne un fectch array -> le tableau de reponse ki contient les resultats de ta requete - donc a adapter -)

if (is_array($liste)) 
  foreach ($liste as $c => $r)
	echo 's.options[s.options.length] = new Option("'.$r["LIBELLEDEPARTEMENT"].'",&q­uot;'.$r["CODEPARTEMENT"].'");';
	
 $ObjVehicule->closeConnection(); 

 // Fin de departement.php
?> 



Notes : Sql des tables



--
-- Structure de la table `departement`
--

CREATE TABLE departement (
  CODEPARTEMENT int(11) NOT NULL default '0',
  CODEDIRECTION int(11) NOT NULL default '0',
  LIBELLEDEPARTEMENT varchar(50) default NULL,
  PRIMARY KEY  (CODEPARTEMENT)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `departement`
-- 

INSERT INTO departement VALUES (6, 3, 'DRH');
INSERT INTO departement VALUES (5, 3, 'DAP');
INSERT INTO departement VALUES (4, 2, 'CCI');
INSERT INTO departement VALUES (3, 2, 'DE');
INSERT INTO departement VALUES (2, 2, 'DST');
INSERT INTO departement VALUES (1, 2, 'DED');
INSERT INTO departement VALUES (7, 3, 'DCB');
INSERT INTO departement VALUES (8, 1, 'DM');
INSERT INTO departement VALUES (9, 1, 'DECP');
INSERT INTO departement VALUES (10, 1, 'DT');
INSERT INTO departement VALUES (11, 1, 'DEMSP');

-- --------------------------------------------------------

-- 
-- Structure de la table `direction`
-- 

CREATE TABLE direction (
  CODEDIRECTION int(11) NOT NULL default '0',
  LIBELLEDIRECTION varchar(50) default NULL,
  PRIMARY KEY  (CODEDIRECTION)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `direction`
-- 

INSERT INTO direction VALUES (6, 'DR ABENGOUROU');
INSERT INTO direction VALUES (5, 'DR BOUAKE');
INSERT INTO direction VALUES (4, 'DR ABIDJAN');
INSERT INTO direction VALUES (3, 'DAC');
INSERT INTO direction VALUES (2, 'DSI');
INSERT INTO direction VALUES (1, 'DO');
INSERT INTO direction VALUES (7, 'DR KORHOGO');
INSERT INTO direction VALUES (8, 'SJFisc');
INSERT INTO direction VALUES (9, 'SGene');
INSERT INTO direction VALUES (10, 'Conseil');
INSERT INTO direction VALUES (0, 'CtrGen');



Bonne chance
Répondre à ixtobilly

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
konteriano, le jeudi 10 mai 2007 à 15:20:46
merci beaucoup pour ta réponse, je vais regarder ça et voir si jarrive à le faire avec ma base de données access
Répondre à konteriano

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 ixtobilly, le jeudi 10 mai 2007 à 15:44:55
Tiens j'ai retoruvé la page en question ( http://www.toutjavascript.com/savoir/xmlhttprequest.php3 ) , tu y as aussi toutes les explications.

Ps: Fais attention aux guillemets et autres symboles ( ` ) ils peuvent te donner la migraine
Répondre à ixtobilly
Logiciels pertinents trouvés dans les téléchargements
Télécharger Ma Liste d'Achats  2.01Ma Liste d'Achats - Faire les courses est une tâche bien compliquée pour les non initiés. Ma liste d'achats est comme son nom l'indique, un...Catégorie: Environnement de travail
Licence: Freeware/gratuit
Télécharger SpaceTime   1.0SpaceTime - Pour plus de fluidité et d'ergonomie dans vos recherches sur le web, en mode interactif, c'est encore mieux. Space Time est...Catégorie: Internet
Licence: Freeware/gratuit
Télécharger Xenu's Link Sleuth 1.2jXenu's Link Sleuth - Xenu's Link Sleuth est un logiciel permettant de vérifier les liens brisés d'un site web. La vérification est effectuée...Catégorie: Webmaster
Licence: Freeware/gratuit
Télécharger AdBlock Plus 0.7.5.5AdBlock Plus - AdBlock Plus est l'une des extensions classiques de Firefox ,celui-ci bloque déjà en standard les fenêtre popup: AdBlock va...Catégorie: Extensions Firefox
Licence: Open Source
Plus de logiciels gratuits sur « [javascript]listes déroulantes liées par BDD »