Page 1 sur 2
Menu deroulant php
Posté : 11 août 2009, 09:02
par horrion
Bonjour,
Je cherche dans la cadre d'un projet pour mon entreprise de faire un menu deroulant en php où j'aurai le choix entre les differents nom des clients pour pouvoir obtenir leurs informations.Voici la page que j'ai faite:
<?php
include "connexion.inc.php";
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html/php; charset=utf-8" />
</head>
<body>
<form method="post" action="test2.php" name="client">
<?php
$sql="SELECT Raison_sociale FROM client ORDER BY Client_id ";
$resultat=@mysql_query($sql,$id_link);
echo '<select name="client">';
echo '<option value="" selected></option>';
while ($rang=mysql_fetch_array($resultat)){
$client_id=$rang['Client_id'];
$raison_sociale=$rang['Raison_sociale'];
echo "<option value=\"$client_id\">$raison_sociale</option>";
}
echo '</select>';
?>
<input type="submit" name="Envoyez">
<?php
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
$reponse = mysql_query("SELECT * FROM client WHERE Raison_sociale = '". $client ."'");
$donnees = mysql_fetch_array($reponse);
?>
<br>
<br>
<br>
<br>
Code postal:<input id="codepostal" type="text" name="name" maxlength="50" size="10" value="<?php echo $donnees['Adresse_CP'] ?>">
</form>
<?php
}
?>
</body>
</html>
Mon soucis est que quand je selectionne le nom et que je clique sur envoyé,la valeur du champs "code postal" reste totalement vide:/.
Merci d'avance pour votrre aide
Re: Menu deroulant php
Posté : 11 août 2009, 09:11
par Cobaye
au dessus de
if(isset($_POST['client'])) {
met var_dump($_POST), comme ca tu verra déjà ce que renvoie ton formulaire, si $_POST['client'] renvoie bien une info, teste ta requete. Pour la voir
echo "SELECT * FROM client WHERE Raison_sociale = '". $client ."'";
Re: Menu deroulant php
Posté : 11 août 2009, 09:16
par horrion
Merci pour votre reponse,voici le résultat :/ :
Parse error: parse error in C:\wamp\www\test2.php on line 31
<?php
var_dump($_POST)
echo "SELECT * FROM client WHERE Raison_sociale = '". $client ."'";
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
$reponse = mysql_query("SELECT * FROM client WHERE Raison_sociale = '". $client ."'");
$donnees = mysql_fetch_array($reponse);
?>
Re: Menu deroulant php
Posté : 11 août 2009, 09:18
par Cobaye
manque un } avant ?> sinon je vois rien d'anormal dans ton code
Re: Menu deroulant php
Posté : 11 août 2009, 09:41
par horrion
il y a plus d'erreur mais toujours aucune information qui s'affiche :/ si jamais tu as besoin que je link ma base de donnée ou autre...sinon sa me derange pas de repartir de 0 pour faire en sorte que sa marche.Sa fait 3 jours que je suis dessus et sa commence a m'enerver xD

Re: Menu deroulant php
Posté : 11 août 2009, 09:45
par Cobaye
<?php
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
echo "SELECT * FROM client WHERE Raison_sociale = '". $client ."'";
$reponse = mysql_query("SELECT * FROM client WHERE Raison_sociale = '". $client ."'");
$donnees = mysql_fetch_array($reponse);
?>
le echo de ta requete donne quoi ? tu l'a tester sous ton phpmyadmin ?
Re: Menu deroulant php
Posté : 11 août 2009, 09:54
par horrion
pour ton :
<?php
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
echo "SELECT * FROM client WHERE Raison_sociale = '". $client ."'";
$reponse = mysql_query("SELECT * FROM client WHERE Raison_sociale = '". $client ."'");
$donnees = mysql_fetch_array($reponse);
?>
Tu n'as pas mit de "}" volontairement? ou il faut que je faisse un <?php } ?> a la fin de la page ?
Voici un screen avec le code que tu m'as montrer mais jai ajouter "}"

Re: Menu deroulant php
Posté : 11 août 2009, 10:06
par Cobaye
envoie moi de quoi voir ton code (exemple ton ftp, ou ton code et ta base) par MP et je regarde
Re: Menu deroulant php
Posté : 11 août 2009, 10:08
par Cobaye
C'est bon j'ai trouvé ! par fait attention au début
tu as un conflit de nom
Code : Tout sélectionner
<form method="post" action="test2.php" name="client">
echo '<select name="client">';
ton formulaire et ton champ select s'appel "client" ! change le nom de ton formulaire et ca devrait fonctionner
Re: Menu deroulant php
Posté : 11 août 2009, 10:44
par horrion
Voici le code de ma page:
<?php
include "connexion.inc.php";
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html/php; charset=utf-8" />
</head>
<body>
<form method="post" action="test2.php" name="recherche">
<?php
$sql="SELECT Raison_sociale FROM client ORDER BY Client_id ";
$resultat=@mysql_query($sql,$id_link);
echo '<select name="client">';
echo '<option value="" selected></option>';
while ($rang=mysql_fetch_array($resultat)){
$client_id=$rang['Client_id'];
$raison_sociale=$rang['Raison_sociale'];
echo "<option value=\"$client_id\">$raison_sociale</option>";
}
echo '</select>';
?>
<input type="submit" name="Envoyez">
<?php
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
$reponse = mysql_query("SELECT * FROM client WHERE Raison_sociale = '". $client ."'");
$donnees = mysql_fetch_array($reponse);
}
?>
<br>
<br>
<br>
<br>
Code postal:<input id="codepostal" type="text" name="name" maxlength="50" size="10" value="<?php echo $donnees['Adresse_CP'] ?>">
</form>
</body>
</html>
Message d'erreur dans la case où il y a le champs code postal:
<br /> <b>Notice</b>: Undefined variable: donnees in <b>C:\wamp\www\test2.php</b> on line <b>42</b><br />
Code postal:<input id="codepostal" type="text" name="name" maxlength="50" size="10" value="<?php echo $donnees['Adresse_CP'] ?>">
Voici ma base SQL:
Code : Tout sélectionner
-- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Lun 10 Août 2009 à 13:50
-- Version du serveur: 5.1.30
-- Version de PHP: 5.2.8
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `woehl`
--
-- --------------------------------------------------------
--
-- Structure de la table `client`
--
CREATE TABLE IF NOT EXISTS `client` (
`Client_id` int(10) NOT NULL AUTO_INCREMENT,
`Raison_sociale` varchar(255) NOT NULL,
`Adresse_voie` varchar(255) NOT NULL,
`Adresse_CP` varchar(255) NOT NULL,
`Adresse_ville` varchar(255) NOT NULL,
`Num_tel` int(20) NOT NULL,
`Num_fax` int(20) NOT NULL,
PRIMARY KEY (`Client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `client`
--
INSERT INTO `client` (`Client_id`, `Raison_sociale`, `Adresse_voie`, `Adresse_CP`, `Adresse_ville`, `Num_tel`, `Num_fax`) VALUES
(1, 'Bruker', '4 rue david gruber', '67000', 'Koenigshoffen', 388745218, 388954613),
(2, 'Cesi', '3 rue de rien du tout', '67200', 'Strasbourg', 328382456, 388262475);
Re: Menu deroulant php
Posté : 11 août 2009, 10:47
par horrion
Edit: Pour l'erreur que je t'ai dit,si je met sa a la fin:
<?php
}
?>
Je n'ai plus l'erreur dans la case.Par contre aucune donnée afficher

Re: Menu deroulant php
Posté : 11 août 2009, 11:01
par Cobaye
<?php
$id_link = mysql_pconnect('localhost','root', '') or die('Connexion impossible : ' . mysql_error());
mysql_select_db('labo');
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html/php; charset=utf-8" />
</head>
<body>
<form method="post" action="test.php" name="recherche">
<?php
$sql="SELECT Client_id, Raison_sociale FROM client ORDER BY Client_id";
$resultat=mysql_query($sql, $id_link);
echo '<select name="client">';
echo '<option value="" selected></option>';
while ($rang=mysql_fetch_array($resultat)){
echo "<option value=\"".$rang['Client_id']."\">". $rang['Raison_sociale']."</option>";
}
echo '</select>';
?>
<input type="submit" name="Envoyez">
<?php
$donnees = array();
if(isset($_POST['client'])) {
$client = htmlentities($_POST['client']);
$reponse = mysql_query("SELECT Adresse_CP FROM client WHERE Client_id =".$client);
$donnees = mysql_fetch_array($reponse);
$cp = $donnees['Adresse_CP'];
}
?>
<br>
<br>
<br>
<br>
Code postal:<input id="codepostal" type="text" name="name" maxlength="50" size="10" value="<?php echo $cp; ?>">
</form>
</body>
</html>
voici le code et ca fonctionne
Re: Menu deroulant php
Posté : 11 août 2009, 11:05
par horrion
BINGO sa marche !! merci beaucoup,par contre quand je vais sur la page et qu'il y a pas de valeur de selectionner j'ai sa comme message d'erreur:
<br /> <b>Notice</b>: Undefined variable: cp in <b>C:\wamp\www\test.php</b> on line <b>41</b><br />
Code postal:<input id="codepostal" type="text" name="name" maxlength="50" size="10" value="<?php echo $cp; ?>">
Re: Menu deroulant php
Posté : 11 août 2009, 11:06
par Cobaye
en dessous de $donnees = array(); ajout $cp ="";
Re: Menu deroulant php
Posté : 11 août 2009, 11:09
par horrion
Il y aurait pas moyen de faire un truc du genre:
else
{
echo "<br><b>Veuillez saisir le nom de votre recherche !</b>";
}
Parce que il va y avoir beaucoup de donnée si je dois écrire sa pour toutes les pages sa va pas être très pratique xD