Afficher les informations concerant un choix de la liste déroulante

onss111 - 2 mai 2013 à 17:55
 onss111 - 9 mai 2013 à 17:18
Bonjour à tous.
J'ai créé en PHP une liste déroulante alimentée par une base de donnée MYSQL (table commande qui contient les champs suivant :id, type, description, état, étape) et maintenant je souhaiterais, à partir de la liste déroulante, afficher toute les informations relatives au choix. Je m'explique : ma liste affiche la liste des identifiants des appels d'offre et je voudrais, après avoir choisi un appel d'offre et cliquer sur un bouton "valider", afficher sur la même page (juste en dessous) toute les informations relatives à ce choix

<?php
$connexion=mysql_connect('localhost','root',"") or die ("connexion impossible.");
$db=mysql_select_db('projet',$connexion) or die ("base de données non accessible");
?>
Choisissez un appel d'offre:


<select id=select2 name=id>

<option value=0>-----choisir-----</option>
<?php
$SQL_C = 'SELECT id FROM commande ORDER BY id ASC';
$result_C = mysql_query($SQL_C);
while ($val_C = mysql_fetch_array($result_C))
{
echo '<option value="'.$val_C['id'].'">'.$val_C['id'].'</option>';

}
?>
</select>


mysql_close($connexion);
?>

ce code affiche la liste des appels d'offre de la liste déroulante et après le choix je veux afficher les informations concernant l'appel d'offre choisi au dessous de la liste (type, description, état, étape )
pouvez vous m'aider svp ...

18 réponses

Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 15:38
Bonjour,

2 solutions s'offrent à toi.

La première, tu remonte toutes les données dans ta page html.
<?php 
$connexion=mysql_connect('localhost','root',"") or die ("connexion impossible."); 
$db=mysql_select_db('projet',$connexion) or die ("base de données non accessible");

?>
Choisissez un appel d'offre: 


<select id="select2" name="id">
    <option value=0>-----choisir-----</option>
    <?php
    $SQL_C = 'SELECT * FROM commande ORDER BY id ASC';
    $result_C = mysql_query($SQL_C);
    $data = array();
    while ($val_C = mysql_fetch_array($result_C))
    {
       // mettre tous les champs ici
       $data[]  '"'. $val_C['id'] .'":{"type":"'. addcslashes($val_C['type'], '"') .'", "description":"'. addcslashes($val_C['description'], '"') .'", "etat":"..."}';
       echo '<option value="'.$val_C['id'].'">'.$val_C['id'].'</option>';
    }
    ?> 
</select>
<script type="text/javascript">
var data = '{'.implode(', ', $data).'}';
function showInfo(id)
{
    if (data[id])
        alert('type: '+data[id].type+', description: '+description+'...');
    else
        alert('veuillez sélectionner une valeur');
}
</script>

<?php
mysql_close($connexion); 
?>


La deuxième consiste à faire un appel AJAX. Je pense qu'il y a suffisament de tuto sur internet pour ne pas avoir besoin de détailler la solution ici.
Malgrès tout, si tu t'en sort pas, n'hésite pas à demander.

Cordialement,
Gigatrappeur
0
Merciii bien gigatrappeur pour ton aide mais malheureusement les informations relatives au choix de l'id de s'affichent pas :'((((
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 16:23
As-tu une erreur dans ta console ?

Note : Pour afficher la console appuyer sur F12 > sélectionner l'onglet console.
0
non je n'ai pas un erreur dans la console
en effet; les id s’affichent dans la liste déroulante mais une fois je choisi un id et je clique sur le bouton "Click here" rien ne s'affichent ( Les informatio ns type,description) ne s'affichent pas :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 17:30
Tu as modifié ta requête comme dans la source que j'ai fournis ?
0
ouiii exactement comme tu m'as dit
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 18:49
Tu as adapté la ligne :
$data[]  '"'. $val_C['id'] .'":{"type":"'. addcslashes($val_C['type'], '"') .'", "description":"'. addcslashes($val_C['description'], '"') .'", "etat":"..."}';
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 18:51
Si ton problème persiste, peux-tu m'envoyer un fichier SQL qui contient le create table + insert into pour le jeu de données ?

Je regarderai ce que je peux faire...

Cordialement,
Gigatrappeur
0
Merciiiiiiiii bien pour votre aide :)
Voilà le table en SQL

-- Base de données: `dbprotect`

-- Structure de la table `commande`


CREATE TABLE IF NOT EXISTS `commande` (
`type` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`id` varchar(20) NOT NULL,
`etape` varchar(110) NOT NULL,
`etat` varchar(110) NOT NULL,
`montant` int(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


-- Contenu de la table `commande`
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 21:50
Voici après 5min de débug un code fonctionnel. A toi de l'adapter à tes besoins.
<?php 
$connexion=mysql_connect('localhost','root','') or die ("connexion impossible."); 
$db=mysql_select_db('dbprotect',$connexion) or die ("base de données non accessible");

?>
Choisissez un appel d'offre: 


<select id="select2" name="id">
    <option value=0>-----choisir-----</option>
    <?php
    $SQL_C = 'SELECT * FROM commande ORDER BY id ASC';
    $result_C = mysql_query($SQL_C);
    $data = array();
    while ($val_C = mysql_fetch_array($result_C))
    {
       // mettre tous les champs ici
       $data[] = '"'. $val_C['id'] .'":{"type":"'. addcslashes($val_C['type'], '"') .'", "description":"'. addcslashes($val_C['description'], '"') .'", "etat":"'. addcslashes($val_C['etat'], '"') .'", "etape":"'. addcslashes($val_C['etape'], '"') .'", "montant":"'. addcslashes($val_C['montant'], '"') .'"}';
       echo '<option value="'.$val_C['id'].'">'.$val_C['id'].'</option>';
    }
    ?> 
</select>
<script type="text/javascript">
var data = {<?php echo implode(', ', $data); ?>};
function showInfo(id)
{
    if (data[id])
        alert('id: '+ id +'\ntype: '+data[id].type+'\ndescription: '+data[id].description+'\netat: '+data[id].etat+'\netape: '+data[id].etape+'\nmontant: '+data[id].montant);
    else
        alert('veuillez sélectionner une valeur');
}
</script>

<?php
mysql_close($connexion); 
?>


Cordialement,
Gigatrappeur
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
6 mai 2013 à 21:58
Par contre je te déconseille fortement d'utiliser window.open.

Le plus simple, est d'utiliser une div, de la mettre en position fixed et de la centrer.
Exemple :


    Ma super popup




Gigatrappeur
0
waaaaaaaaaaaaaaw merciiiiiiiiiiiiiiiiiiiiiiiiiii beaucouppppppp !!!!c génial :)))

il ne reste qu'une petite chose

En effet, j'ai 2 listes déroulantes:

Pour la 1er liste contient les id des commandes et la 2ème contient les étapes de déroulement des commandes
Si l'utilisateur choisit un identifiant de la 1ère liste, il va mettre à jour les étapes en sélectionnant un champ de la 2ème liste, Ce dernier sera désactivé ou coloré une fois est stocké dans la base de donnée,
Voilà le code de la sélection d'un id de la base:
<?php
$connexion=mysql_connect('localhost','root',"") or die ("connexion impossible.");
$db=mysql_select_db('projet',$connexion) or die ("base de données non accessible");
?>
Choisissez un appel d'offre:


<select id=select2 name=id>

<option value=0>-----choisir-----</option>
<?php
$SQL_C = 'SELECT id FROM commande ORDER BY id ASC';
$result_C = mysql_query($SQL_C);
while ($val_C = mysql_fetch_array($result_C))
{
echo '<option value="'.$val_C['id'].'">'.$val_C['id'].'</option>';

}
?>
</select>


et voilà le code des étapes des commandes:

<select id=select2 name="etape">

<option>Etude</option>
<option>Depot dossier AO</option>
<option >Publication de l'avis de presse</option>
<option > Réception des offres techniques </option>
<option >Ouverture des plis technique.</option>
<option >Dépouillement des plis tech</option>
<option > Dépôt de résultat </option>
<option> Ouverture des plis financière. </option>
<option> Dépôt de dossier </option>
<option> Conclusion </option>
<option> Publication resultat </option>
</select>

Vraiment désolée pour le dérangement mais je suis vraiment bloqué en niveau de cette instruction :(
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
7 mai 2013 à 08:56
Bonjour,

Pour sélectionner une option dans ton 2ième select, il suffit de faire :
document.getElementById('etape').value = 'Conclusion';

Par contre, il faut modifier ton select :
<select id=select2 name="etape">
    <option value="Etude">Etude</option>
    <option value="Depot dossier AO">Depot dossier AO</option>
    <option value="Publication de l'avis de presse">Publication de l'avis de presse</option>
    <option value="Réception des offres techniques">Réception des offres techniques</option>
    <option value="Ouverture des plis technique.">Ouverture des plis technique.</option>
    <option value="Dépouillement des plis tech">Dépouillement des plis tech</option>
    <option value="Dépôt de résultat">Dépôt de résultat</option>
    <option value="Ouverture des plis financière.">Ouverture des plis financière.</option>
    <option value="Dépôt de dossier">Dépôt de dossier</option>
    <option value="Conclusion">Conclusion</option>
    <option value="Publication resultat">Publication resultat</option>
</select>



Ensuite pour modifier la couleur, d'une option d'un select, je crois qu'il suffit de modifier la propriété css "background-color".

Exemple pour désactiver l'option "Conclusion" :
var selectEtape = document.getElementById('etape');
selectEtape.value = 'Conclusion';
selectEtape.options[selectEtape.selectedIndex].disabled = true;


Normalement, tu dois avoir toutes les billes pour écrire le code que tu veux.


Gigatrappeur
0
Merciii bien Gigrappeur mais je suis débutante en php w je ne sais pas faire ça toute seule :'((( je suis désolée mais pouvez vous m'aider

je vous explique encore plus mon problème :
j'ai deux liste déroulante la 1ere affiche les id des commandes et la 2ème affche les étapes de déroulement des commandes
si par exemple je choisit un id de la 1ere liste je vais après cliquer sur une étape une fois je clique sur un bouton valider le champ étape sera mis dans la base de donnée suivant son id

par exemple: j'ai un id (AON 05) cette commande est dans l'étape (Réception des offres technique ) si je clique sur ce champ cette valeur sera à la place de la dernière étape ( Publication de l'avis de presse) au niveau de la base

si je visite une autre fois la page il faut que je trouve que l'étape (Réception des offres technique) et les étapes avant ( Etude, Depot dossier AO, Publication de l'avis de presse) sont désactivées ou colorés pour que je puisse savoir chaque commande ou elle est arrête ou encore je ne peux pas revenir en arrière pour chaque commande.

j'espère que vous arrivez à me comprendre :))

Je suis vraiment désolé pour le dérangement mais j'ai besoin de ce script dans mon Projet de fin d'études :(((
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
9 mai 2013 à 13:17
Bonjour,

Pourrais-tu reformuler ton problème. Je ne le comprends pas. Merci.

Cordialement,
Gigatrappeur
0
Bonjour Gigatrappeur,
Merciii beaucoup pour votre aide :)

SVP Pouvez vous m'envoyer votre adresse mail dans un message privé dans ce site pour que vous envoie un fichier compressé où vous trouvez toute les données pour vous comprenez de plus mon problème

Mercii d'avance:))))
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
9 mai 2013 à 17:07
Bonjour,

Pour envoyer un message privé, il suffit de cliquer sur le pseudo à gauche et puis de cliquer sur "envoyer un message privé".

Cordialement,
Gigatrappeur
0
Je veux dire si pouvez m'envoyer ton adresse mail pour que je puisse vous envoyer un fichier compressé ou il y a la base de donnée et la page dynamique php avec toute une explication pour que vous comprenez le problème
je vais vous envoyer mon adresse mail dans un msg privé
0
Rejoignez-nous