begin process at 2012 05 30 15:09:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

liste déroulante et affichage autoamtique sur la même page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

liste déroulante et affichage autoamtique sur la même page

mardi 25 août 2009 à 11:19:34 | liste déroulante et affichage autoamtique sur la même page

cbst

Salut à tous
voilà j'ai crée en php une liste déroulante de code services rempli à partir de la base donnée et je voudrais, après une clique sur le code désiré,afficher sur la même page les autres données relatives à ce service(designation,type)...sachant que le nombre de service est plus grand pour cela j'ai crée une table 'service' dans la base de données 'gestion de stock' en mysql.
Merci d'avance


Code PHP :
<?php

//connection au serveur
$connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');

//sélection de la base de données:
$db = mysql_select_db( "gestion_stock" ) or die('base introuvable');
?>
<form id="form1" name="form1" method="POST" action="">

<?php
$cde="select * from service order by 'desig_sce'";
$reqt=mysql_query($cde) or die ('erreur sql'.$cde.'<br>'.mysql_error());
?>
<label></label>
<pre> <select name="selectcde_sce"> <option> </option> <?php while($sql=mysql_fetch_object($reqt)){?> <option> <?php echo( $sql->cde_sce);}?></option> </select>
</pre>
<pre> <?php
$cde_sce = $_GET['cde_sce'];
$req="select desig_sce from service where cde_sce='$cde_sce'";
$desig = mysql_query($req) or die ('erreur sql'.$req.'<br>'.mysql_error());
while($result=mysql_fetch_object($desig))
{?> <input name="desig_sce" type ="text" size="37" value="<?php echo( $result->desig_sce);?>" />
</pre>
<pre> <input name="type_sce" type ="text" size="37" value="<?php echo( $result->type_sce);?>" /> <?php
}
?>
</pre>
</form>

mardi 25 août 2009 à 21:28:29 | Re : liste déroulante et affichage autoamtique sur la même page

nautilus99

Bonsoir,

Si tu ne veux pas de rechargement de la page, regardes JavaScript, avec JQuery ou MooTools..



mercredi 26 août 2009 à 15:27:12 | Re : liste déroulante et affichage autoamtique sur la même page

cbst

Merci nautilus99,
j'essaie une autre solution:j'ai crée 5pages,mais quand je selectionne le code de service ds la 1ère liste les 2autres listes restent inactives.
VOICI LE CODE:
p1 pour la connexion:

Code PHP :
<?PHP

$connexion = mysql_connect('localhost','root','') or die ("Connexion au serveur impossible");
mysql_select_db('gestion_stock')or die('la selection de la base impossible');
?>


p2 pour la connexion:
Code PHP :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listes déroulantes pilotées par JavaScript Asynchrone et une Base de données</title>

<script type="text/javascript">
<!--
var Ld1Id='';
var Ld2Id='';
var id_liste='';

function ValideLd2(val) {
Ld1Id=val; //cde_sce
id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
ObjetXHR(LD_URL)
//objet XMLHttpRequest(LD_URL)
// Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
if (Ld2Id!='') {ValideLd3(''); }
}

function ValideLd3(val) {
Ld2Id=val; //id_commune
id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
if (Ld2Id=='') {var LD_URL = 'ValideLd3.php';}
ObjetXHR(LD_URL)
}

function ObjetXHR(LD_URL) {
//creation de l'objet XMLHttpRequest
if (window.XMLHttpRequest) { // Mozilla,...
xmlhttp=new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
}
xmlhttp.onreadystatechange=ChargeLd;
xmlhttp.open("GET", LD_URL, true);
xmlhttp.send(null);
} else if (window.ActiveXObject) { //IE
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
if (xmlhttp) {
xmlhttp.onreadystatechange=ChargeLd;
xmlhttp.open('GET', LD_URL, false);
xmlhttp.send();
}
}
// Bouton non apparent car modification de LD1 ou Ld2
document.getElementById('buttons').style.display='none';
}

// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) {
//span id="niv2" ou "niv3"
document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText;
if (xmlhttp.responseText.indexOf('disabled')<=0) {
//focus sur liste déroulante 2 ou 3
document.getElementById('Liste'+id_liste).focus();
}
}
}
}

function Affiche_Btn() {
document.getElementById('buttons').style.display='inline';
}
</script>

<style>
#buttons {
display: none;
}
</style>
</head>

<body>
<!--
<noscript>
<p>Cette page nécessite que JavaScript soit activé; dans votre navigateur
</noscript>-->

<div id="Les3LD">
<p>Selectionnez votre choix dans les listes d&eacute;roulantes:</p>
<form name="form1" method="get" action="ListeCP.php">
<?php
include ("ValideLd1.php"); ?>&nbsp; <!--Pour remplir la liste déroulante 1-->
<span id="niv2">
<?php include ("ValideLd2.php"); ?></span>&nbsp; <!--Pour remplir la liste déroulante 2-->
<span id="niv3">
<?php include ("ValideLd3.php"); ?></span>&nbsp; <!--Pour remplir la liste déroulante 3-->
<span id="buttons">
<input type="submit" value="Valider">
</span>
</form>
</div>
</body>
</html>

p3 pour l'affichage de la 1ère liste:
Code PHP :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?PHP
include 'Connexionbd.php';
$rq="Select * from service order by desig_sce;";
$rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
$rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php et ValideLd3.php

$result= mysql_query ($rq) or die('Erreur SQL !'.$rq.'<br>'.mysql_error());
$retour = '<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
}
$retour .= '</select>';
} else {
$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close($connexion);
echo $retour
?>
</body>
</html>

p4 pour l'affichage de la 2ème liste:
Code PHP :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?PHP
include 'Connexionbd.php';

$Ld1_retour =''; //cde_sce clé de la liste déroulante 1

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}

if ($Ld1_retour) {

$rq="Select * from service where cde_sce=".$Ld1_retour." order by desig_sce;";
$rq_pos_id=0;//position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
$rq_pos_val=1;//position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php et ValideLd3.php

$result= mysql_query ($rq) or die('Erreur SQL !'.$rq.'<br>'.mysql_error());//echo $Ld1_retour;
$retour = '<select name="Liste2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';

if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';

}
$retour .= '</select>';
} else {
$retour = '<input id="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close($connexion);
}else{
$retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour
?>

</body>
</html>

p5 pour l'affichage de la 3ème liste:
Code PHP :
<?PHP

include 'Connexionbd.php';
$Ld1_retour =''; //cde_sce clé de la liste déroulante 1
$Ld2_retour =''; //desiog_sce clé de la liste déroulante 2

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
if (isset($_GET['Ld2'])) {$Ld2_retour = $_GET['Ld2'];}

if (($Ld1_retour!='')&&($Ld2_retour!='')) {
$rq="Select type_sce from service where cde_sce='$Ld1_retour' AND desig_sce='$Ld2_retour' ";
$rq_pos_id=0;
$rq_pos_val=0;
$result= mysql_query ($rq) or die('Erreur SQL !'.$rq.'<br>'.mysql_error());
$retour = '<select name="Liste3" id="Liste3" size="1" onchange="Affiche_Btn();">';
$retour .= '<option selected value="">Choisir...</option>';

if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
}
$retour .= '</select>';
} else {
$retour = '<input id="Liste3" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close($connexion);
}else{
$retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour
?>



Cette discussion est classée dans : page, code, mysql, liste, déroulante


Répondre à ce message

Sujets en rapport avec ce message

Passage de valeur à partir de MySQL vers une liste déroulante qui génère une autre liste déroulante , de manière incrémentale et illimitée [ par Flatouille ] Bonjour à tous Dans le cadre d'un travail pour mon stage, je dois réaliser une petite bidouille qui consiste à cré MySQL liste déroulante qui ne s'affiche pas [ par antoine1110 ] bonjour bonjour!! je suis un grand novice dans le domaine du php mysql ( ca doit être ma deuxième semaine sur le sujet mais avec un projet qui se pr Probleme de<select> et retour automatique à la premiere option [ par xpl0ze ] Bonjour à tous ! Voila c'est mon premier topic sur ce forum et j'espere que vous pourrez me venir en aide :D Alors mon problème est le suivant. J'ai Liste déroulante mysql (affichage + insertion) [ par orygynz ] Bonjour, Je suis entrain de développer un petit site web et j'ai un souci pour des formulaires en lien avec une bdd. Ci-joint mon code : [cod Débutant liste déroulante + mysql bd [ par santille ] Bonjour, Je suis débutant en PHP et j'essaie d'optimiser un script avec des listes déroulantes. Vous pouvez avoir les fichiers à http://www.fang.ch/p liste déroulante qui n'affiche qu'une ligne [ par davidson81 ] Bonjour, J'ai un problème de liste déroulante.Quand je fais un choix cela ne m'affiche que une ligne alors qu'il devrait en avoir plusieurs. voici mo Liste déroulante, base mysql, changement de valeurs [ par frayoubessem ] Salut tout le monde, J'ai besoin de remplir quelques champs de texte lorsque je choisis un element de ma liste qui est résultat d'une requête, ici j Liste déroulante dynamique oracle [ par EMAX2K ] Bonjour à tous, Voila je vous explique mon problème : j'ai un formulaire php qui va récupérer les valeurs dans une base. J'ai un formulaire avec 3 Prblémre récupération donées bdd mysql dans liste déroulante [ par tif27940 ] Bonjour, voila mon petit probléme est que je n'arrive pas a récupérer les données de ma table a fin de les mettre dans une liste déroulante. voidi le Réalisation d'une map de déplacement en php avec interraction mySQL [ par monoski ] Bonjour tout le monde, J'ai récemment repris le coding en php que j'ai abandonné il y a bien longtemps et pour me remettre en jambe je suis quelques


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,090 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales