Page 1 sur 1

2 listes déroulantes liées

Posté : 18 août 2010, 22:32
par muriel
Bonjour à tous,

Je suis allée sur les tutos, j'ai cherché dans le forum et j'ai trouvé quelques pistes mais étant débutante en php je cherche une solution simple à mon probleme et j'avoue mettre un peu embrouillé avec les listes deroulantes liées sans avoir réussi à le mettre en forme.

J'ai une table en php avec "id, constructeur,reference,prix"

et je souhaiterai faire une premiere liste avec "constructeur" et "reference"

et une deuxieme liste qui pointerai directement sur le "prix" grace à l'id de la première liste.

J'espere trouver une personne qui sera me mettre sur la voie, pour le moment je n'arrive à avoir que 2 listes deroulantes qui affichent l'une le constructeur, l'autre le prix sans aucun lien entre les deux.

D'avance merci à tous ceux qui liront ce message.

Muriel

Re: 2 listes déroulantes liées

Posté : 18 août 2010, 22:34
par xTG
Ne te serais-tu pas embrouillée dans ton explication ?

Car un article (association de constructeur + reference) n'est-il pas censé ne posséder qu'un seul et unique prix ?
Car sinon cela impliquerai que tu ais plusieurs enregistrements dans ta table référençant le même objet mais avec des prix différents.

Re: 2 listes déroulantes liées

Posté : 18 août 2010, 22:59
par muriel
Oui tu as parfaitement raison xtg, s'est la raison pour laquelle je pense que cela ne devrait pas etre très compliqué. J'ai oublié de dire que ma table s'appelle 'tarif'. Je souhaite juste avoir 2 listes deroulantes qui soient liés...

Re: 2 listes déroulantes liées

Posté : 18 août 2010, 23:02
par muriel
j'ai une centaine d'enregistrement avec des constructeurs ex: hp, canon etc...
des references differentes pour chaque produit et un prix different pour chaque produit.

J'espere que mes explications ne sont pas trop embrouillés ?!!!

Re: 2 listes déroulantes liées

Posté : 18 août 2010, 23:17
par dunbar
Salut,

Pourrais tu nous mettre la structure des tes TABLES :)

Re: 2 listes déroulantes liées

Posté : 18 août 2010, 23:39
par muriel
Bonsoir Dunbar,

Avec plaisir...voici la structure:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
--

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

--
-- Structure de la table `tarif`
--

CREATE TABLE IF NOT EXISTS `tarif` (
  `id` int(11) NOT NULL auto_increment,
  `form1` text NOT NULL,
  `constructeur` text NOT NULL,
  `form2` text NOT NULL,
  `form2gain` text NOT NULL,
  `reference` text NOT NULL,
  `form2bis` text NOT NULL,
  `poids` text NOT NULL,
  `form3` text NOT NULL,
  `prix` text NOT NULL,
  `form4` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=56 ;

--
-- Contenu de la table `tarif`
--

INSERT INTO `tarif` (`id`, `form1`, `constructeur`, `form2`, `form2gain`, `reference`, `form2bis`, `poids`, `form3`, `prix`, `form4`) VALUES
(1, '', 'HP', '', '<strong>', 'n° 336', ':', '40', '', '1.00', '€'),
(2, '', 'HP', '', '<strong>', 'n° 337', ':', '55', '', '1.00', '€'),

etc...

(55, '', 'Dell', '', '', 'tous modèles', ':', '37', '', '0.10', '€');

D'avance merci, Dunbar, pour ton aide.

Re: 2 listes déroulantes liées

Posté : 19 août 2010, 00:17
par dunbar
Salut,

Je ne suis pas certain d'avoir bien capter la demande mais essaye ceci :?:

<?php

####################################################################
# Définition des paramètres de connexion à la base de données.
#
	$db_host  = 'localhost';        //-->Serveur sur lequel se trouve le serveur de base de données.//
	$db_login = '';           //-->Login de connexion à la base de données.//
	$db_pass  = '';     //-->Passeword de connexion à la base de données.//
	$db_base  = '';       //-->Base de données.//
	$db_table = '';
#
#   Fin des paramètres de connexion à la base de données.
#####################################################################

#####################################################################
# Connexion à la base de données.//
#
	    $sql_db = mysql_connect($db_host, $db_login, $db_pass) or die("<font color='#0000A0'>Erreur MySQL :<br />" . $sql_db .
	    "<br />" . "Impossible d'établir une connexion avec le serveur MySQL</font>");

	    mysql_select_db($db_base) or die("<font color='#0000A0'>Erreur MySQL :<br />" . $db_base . "<br />" .
	    "Impossible d'établir une connexion avec la base " . $db_base . "</font>");
#
# Fin de la requête de connexion à la base de données.
#####################################################################

$action = (isset($_GET['action']) ? $_GET['action'] : NULL );

	switch ($action)
	 {
	  case 'suite':

            $id = (isset($_GET['id']) ? $_GET['id'] : NULL );
            $c  = (isset($_GET['c']) ? $_GET['c'] : NULL );
            $r  = (isset($_GET['r']) ? $_GET['r'] : NULL );

            $sql = " SELECT id, prix FROM $db_table WHERE id = '".$id."'";
	  		$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


            echo 'Contructeur : ' . $c . '<BR />';
            echo 'Référence : ' . $r . '<BR />';

            $select  = '<select name="it" >';
            $select .= '<option value="0">prix</option>';

            while($row = mysql_fetch_assoc($req))
            {
            	$select .= '<option value="'.$row['id'].'">'.$row['prix'].'</option>';
            }

            $select .= '</select>';

            echo $select;
	    break;

	  default;
            
	  		$sql = " SELECT id, constructeur, reference FROM $db_table ";
	  		$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


            $select  = '<select name="it" onChange="location = this.options[this.selectedIndex].value">';
            $select .= '<option value="0">Votre choix</option>';

            while($row = mysql_fetch_assoc($req))
            {
            	$select .= '<option value="'.$_SERVER['REQUEST_URI'].'?action=suite&id='.$row['id'].'&c='.$row['constructeur'].'&r='.$row['reference'].'">'.$row['constructeur'].' | '.$row['reference'].'</option>';
            }

            $select .= '</select>';

            echo $select;


	    break;
	 }



?>




Re: 2 listes déroulantes liées

Posté : 20 août 2010, 14:53
par muriel
Bonjour Dunbar,

Je te remercie pour ton code...je t'ai envoyé un message en PM pour te donner l'url du site, car j'ai bien la liste avec les constructeur et la reference mais pas la liste avec le prix.

Merci Dunbar pour ton aide.

Muriel