je suis débutant en php et je dois lier deux liste déroulante ( deja rempli depuis une base de donnée ) , la première liste déroulante contient des services et le 2eme contient la liste des employé , je veux quand je sélectionne un service de la première liste , il s'affiche directement dans la 2eme seulement les employés qui travaille dans se service . ça marche seulement quand je les fais dans deux page séparé , dans la même page ça marche pas , je me rend malade je suis coincé depuis deja deux semaine .. svp aidez moi je fais seulement une auto formation pour pourvoir déposé mon PFM alors que j ai jamais étudié le web , peut etre que c'est tres facile mais j'y arrive pas . . .
le code ( c'est trop long ) :
<?php include ('connection.php');
session_start();
$sql = "select * from tuser where login='".($_SESSION['login'])."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['admin']=="oui"){
include ('menu.php');
}
else {
include ('menu2.php');
}
?>
<?php
$id_service= isset($_POST['id_service']) ? $_POST['id_service'] : 'Tous';
$id_per= isset($_POST['id_per']) ? $_POST['id_per'] : 'Tous';
?>
<html><body>
<?php
?>
<form action="testeservice.php" name="form">
id service : <select name="id_service" id="id_service" onchange="form.submit()" >
<option>Toutes</option>
<?php
$req = "SELECT * FROM service ORDER BY id_service ASC";
$r_req = mysql_query($req);
while ($q_req=mysql_fetch_array($r_req)) {
?>
<?php if ($q_req["id_service"]==$id_service) { ?>
<option value="<?php echo $q_req["id_service"];?>" name="id_service" Selected id="id_service" ><?php echo $q_req["nom_service"]." ".$q_req["id_service"];?></option>
<?php } else {?>
<option value="<?php echo $q_req["id_service"];?>" name="id_service" id="id_service" ><?php echo $q_req["nom_service"]." ".$q_req["id_service"];?></option>
<?php } }
?>
</select>
id personne <select name="id_per" id="id_per" onchange="form.submit()">
<option>Toutes</option>
<?php
if(!empty($_POST['id_service'])){
$req = "select * from personne ";
$r_req = mysql_query($req);
while ($q_req=mysql_fetch_array($r_req)) {
?>
<?php if ($q_req["id_service"]==$id_service ) { ?>
<?php $req = "select * from personne where id_service ='".$_POST['id_service']."'";
}}
$r_req = mysql_query($req);
while ($q_req=mysql_fetch_array($r_req)) {
?>
<?php if ($q_req["id_per"]==$id_per) { ?>
<option value="<?php echo $q_req["id_per"];?>" Selected id="id_per"><?php echo $q_req["nom"]." ".$q_req["id_per"];?>
<?php
}
else{
?>
<option value="<?php echo $q_req["id_per"];?>" id="id_per" ><?php echo $q_req["nom"]." ".$q_req["id_per"];?>
<?php
}}}
?>
</option>
</select>
</form>
</body></html>
En php tu peux rafraichir la page (refresh()...) et faire une vérification du genre:
Si (quelques choses à été saisie dans la liste déroulante 1)
alors (faire la requete pour récupérer tout les employés de ce service et les mettres dans la liste déroulante 2)
Ca va être un peu lourd certes.
La meilleur solution reste -> AJAX
et c'est une autre histoire ^^
9 juin 2011 à 22:34
merci quand même :)
9 juin 2011 à 22:40