Problème de récupération dans une requête

Résolu/Fermé
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009 - 27 janv. 2009 à 09:35
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009 - 29 janv. 2009 à 15:32
Bonjour à tous,

J'ai un problème avec une requete dans un formulaire et j'espère que quelqu'un pourra me venir en aide.

Voila le topo
J'ai 2 tables MySQL

nom de la table: qualite_pole
champs : id_pole (key), pole (lettre), nompole (nom du processus)

Par exemple un champ est : A(pole) Situation administrative (nompole), B informatique, C gestion, etc.

nom de ta table: qualite_processus2
champs : id_processus (key), id_pole (lettre), lettre_proc (sur 2 caractères), nom_proc (nom du pole)
Par exemple un champ est : A1 - Affilier, A2, vérifier, B1 Conseiller, etc.

En gros un pole A1 dépend du processus A, un pole B2 dépend du processus B, etc.

Mon problème est le suivant:

J'ai une fiche de signalement dans laquelle une personne remplit des champs de formulaire et sélectionne son processus et son pole.

Voici le code:

<td>Processus :
<select name="id_processus" id="id_processus"<?php if ($attention AND empty($id_processus)) {echo " style=\"background-color:#FF0000\"";}?> onChange="proc()">
<option value="" <?php if (empty($id_processus)) {echo "selected"; } ?>>A compléter ...</option>
<?php
$sqlprocessus = "SELECT * FROM qualite_pole";
$resultatprocessus = mysql_query ($sqlprocessus, $connexion);
while ($tabprocessus = mysql_fetch_array($resultatprocessus, MYSQL_ASSOC)) {
echo "<option value=\"{$tabprocessus[pole]} {$tabprocessus[nompole]}\"";
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}
echo ">{$tabprocessus[pole]} {$tabprocessus[nompole]}</option>";
}
?>
</select>
<select name="processus" id="processus<?php if ($attention AND empty($processus)) {echo " style=\"background-color:#FF0000\"";}?>" onChange="document.form1.description.value=this.value" style="display:none">
<option selected>Précisez le pôle concerné...</option>
<?php
$sqlpole="SELECT lettre_proc,nom_proc from qualite_processus2";
$resultatpole = mysql_query ($sqlpole, $connexion);
while ($tabpole = mysql_fetch_array($resultatpole, MYSQL_ASSOC)) {?>
<option value="<?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?>"><?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?></option>
<?php } ?>
</select></td>

Le premier formulaire permet de séléctionner le processus (A, B, etc.) le deuxième sélectionne le pole A1, A2, B1 etc.

ce que je souhaiterais avoir c'est que lorsque le processus A est sélectionné dans le premier formulaire, que le deuxième formulaire filtre les poles correspondant A1 A2 et pas tous les poles.

J'ai testé plusieurs requetes mais elles ne fonctionnent pas:
$sqlpole="SELECT lettre_proc,nom_proc from qualite_processus2,qualite_pole WHERE id_pole.processus2=id_pole.qualite_pole"

Ce qui fonctionne c'est :
$sqlpole="SELECT lettre_proc,nom_proc from qualite_processus2 WHERE id_pole.processus2=2"
Mais dans ce cas là, ca ne me filtre que les poles dont l'id est 2 (B1, B2, etc.)

Quelqu'un pourrait m'aider pour cette requete, car je tourne en rond depuis de nombreux jours.

N'hésitez pas à me demander si vous souhaitez avoir plus d'explications.

D'avance merci à ceux qui se pencheront sur mon problème.

31 réponses

Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
27 janv. 2009 à 09:56
Salut,

Je n'ai pas trop compris tes tables.

Que fait la fonction proc() ?
=> requête AJAX, submit ( si c'est autre chose, ça ne peut pas marcher car le php est charger au début de la page et l'utilisateur n'a donc encore rien choisi ) ?

Si c'est bien id_processus qui est de type A1
Sinon la requête doit être :
SELECT * FROM qualite_processus2 WHERE id_processus like '%A%'
ou A vient du 1er select
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
27 janv. 2009 à 10:10
Bonjour,

Alors pour te répondre, la fonction proc() c'est juste pour afficher le deuxième formulaire quand le premier champ est rempli.

Ce qui est de type A1 A2 etc. dans ma table qualite_processus2 c'est lettre_proc.
id_processus c'est juste la clé primaire.

Mais si je fais cette requete:
SELECT * FROM qualite_processus2 WHERE id_processus like '%A%'

Ca me choisira automatiquement les poles commencant par A, et ceci quelque soit le processus choisi dans le premier formulaire.
Ce que j'aimerais (si c'est possible), c'est :
- je choisis dans ma liste le processus (A, B, C, etc.)
- dans mon deuxième formulaire, les poles correspondant sont sélectionnés automatiquement et je choisis parmi ceux ci. (A1, A2 si le processus sléectionné est A, B1, B2, B3 si c'est B, etc.)
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
27 janv. 2009 à 10:21
Comme dit plus haut, il faut que le onChange de ta 1ère requête fasse un submit de la page, pourque tu puisses récupérer le choix de l'utilisateur ( ou utiliser de l'AJAX ).

En gros dans ton code, tu affiches la 1ère liste de sélection tout le temps et tu n'affiches la 2ème que si quelquechose est choisi dans la 1ère ( if($_POST["processus"]) )

au début, tu affiches que la 1ère liste de sélection, l'utilisateur choisit, ça refait un submit de la page, là tu récupères ton id_processus, tu affiches la 1ère liste de sélection avec le choix de l'utilisateur et tu as ta valeur pour faire ta 2ème requête "SELECT * FROM qualite_processus2 WHERE id_processus like '%".$_POST["processus"]."%' "
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
27 janv. 2009 à 10:40
L'AJAX je n'y ai pas encore touché donc je ne connais pas.

Donc mon souci c'est comment je vais pouvoir écrire tout ca. Désolé parce que je ne suis absolument pas doué en php et mysql.
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
27 janv. 2009 à 11:06
Pas d'ajax alors. Je te donne un morceau de code à développer, je compléterais si besoin.
<form method="post" action="ton_url">
requête et code de ton premier select ( name : id_processus value : la lettre [A, B ou C....] onChange=this.form.submit(); )
<?php
if (isset($_POST["id_processus"]))
{
  requête : "SELECT * FROM qualite_processus2 WHERE id_processus like '%".$_POST["id_processus"]."%' "
  affichage de ton select
}
?>
</form>
0

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

Posez votre question
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
27 janv. 2009 à 11:48
Je vois à peu près comment faire mais pour l'intégrer dans ma page ca me semble difficile.

Voilà la page complète signalement.php(je ne peux pas le joindre au message), comment faire pour intégrer ta partie dans mon code ?

<?php
ob_start("ob_gzhandler");

include("../include/connect.php");
include("../include/connexion.php");
$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);

if (!empty($id) AND empty($etat)) {
$sqlfiche = "SELECT * FROM qualite_signalement, qualite_etat_signalement WHERE qualite_signalement.id_etat=qualite_etat_signalement.id_etat AND id_signalement='$id'";
$resultatfiche = mysql_query ($sqlfiche, $connexion);
$tabfiche = mysql_fetch_array($resultatfiche, MYSQL_ASSOC);
if ($tabfiche[id_etat] >= "5") {header("location: corprev.php?id=$id");}
$etat = $tabfiche[id_etat]+1;
if (empty($statut) OR $etat != $statut) {
$statut = "etape".$etat;
}
}

function sans_accent($chaine)
{
$accent ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
$noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
return strtr(trim($chaine),$accent,$noaccent);
}

function date_format2($dateatransformer){
//separation de la date par / ou -
list ($y , $m , $d) = split("[-./]",$dateatransformer);
//inverse la date
return($d."-".$m."-".$y);
}

if ($statut=="save") {
if (!empty($id_agent) AND !empty($id_origine) AND !empty($id_type) AND !empty($description)) {
$date_constatation = date_format2($date_constatation);
$date_depot = date('Y-m-d');
$ins = "INSERT INTO qualite_signalement(id_signalement, id_agent, id_origine, id_type, date_constatation, date_depot, description, solution_propose, date_reception_rq, id_processus, id_type_rq, id_responsable, date_realisation, date_reception_responsable, traitement_curatif, date_reception_rq_validation, validation_traitement, date_validation, id_etat) VALUES('', '$id_agent', '$id_origine', '$id_type', '$date_constatation', '$date_depot', '$description', '$solution_propose', '', '', '', '', '', '', '', '', '', '','1')";
$valide = mysql_query ($ins, $connexion);

$req1="select max(id_signalement) from qualite_signalement";
$res1=mysql_query($req1, $connexion);
$idmax1=mysql_result($res1,0);

list($nomagent,$prenomagent) = explode(' ', $id_agent);
$sql_agent = "SELECT nomagent, prenomagent, email FROM agent WHERE nomagent = '$nomagent' AND prenomagent = '$prenomagent'";
$result_agent = mysql_query($sql_agent, $connexion);
$tab_agent = mysql_fetch_array($result_agent, MYSQL_ASSOC);

$message = "Bonjour,\n\n".$prenomagent." ".$nomagent." vient de déposer une nouvelle fiche de signalement.\n\nConsultez cette nouvelle fiche de signalement : http://xxxxx/qualite/signalement.php?id=".$idmax1."\n";

mail("xxxxx@xxxxx.fr","Une nouvelle fiche de signalement vient d'être déposée",$message,"From: Fiche de signalement <$tab_agent[email]>");

header("location: signalement.php?statut=message_envoyé_RQ&idsignalement=$idmax1");
} else {
$attention = "Vous avez mal renseigné les champs en rouge.";
}
} else if ($statut=="2save") {
$date_realisation = date_format2($date_realisation);
$date_reception_rq = date('Y-m-d');
$update = "UPDATE qualite_signalement SET date_reception_rq='$date_reception_rq', id_processus='$id_processus' , id_type_rq='$id_type_rq' , id_responsable='$id_responsable' , date_realisation='$date_realisation', id_etat = '2' WHERE id_signalement='$id'";
$result = mysql_query ($update, $connexion);

list($nomagent,$prenomagent) = explode(' ', $id_responsable);
$sql_agent = "SELECT nomagent, prenomagent, email FROM agent WHERE nomagent = '$nomagent' AND prenomagent = '$prenomagent'";
$result_agent = mysql_query($sql_agent, $connexion);
$tab_agent = mysql_fetch_array($result_agent, MYSQL_ASSOC);

$message = "Bonjour,\n\nConsultez cette fiche de signalement en cliquant ci-dessous :\n\nhttp://xxxxx/qualite/signalement.php?id=".$id."\n";
mail($tab_agent[email],"Une nouvelle fiche de signalement vient de vous être adressée",$message,"From: Responsable Qualité <XX@XXXXXX.fr>");
header("location: signalement.php?statut=message_envoyé_responsable");
} else if ($statut=="3save") {
$date_reception_responsable = date_format2($date_reception_responsable);
$date_realisation_fixee = date_format2($date_fixee);
$update = "UPDATE qualite_signalement SET date_reception_responsable='$date_reception_responsable', traitement_curatif='$traitement_curatif', date_realisation_fixee='$date_realisation_fixee', id_etat = '3' WHERE id_signalement='$id'";
$result = mysql_query ($update, $connexion);

list($nomagent,$prenomagent) = explode(' ', $id_responsable);
$sql_agent = "SELECT nomagent, prenomagent, email FROM agent WHERE nomagent = '$nomagent' AND prenomagent = '$prenomagent'";
$result_agent = mysql_query($sql_agent, $connexion);
$tab_agent = mysql_fetch_array($result_agent, MYSQL_ASSOC);

$message = "Bonjour,\n\nConsultez cette fiche de signalement en cliquant ci-dessous :\n\nhttp://xxxxx/qualite/signalement.php?id=".$id."\n";

mail("xxxxx@xxxxx.fr","Une mise à jour d'une fiche de signalement vient d'être déposée",$message,"From: $prenomagent $nomagent <$tab_agent[email]>");

header("location: signalement.php?statut=message_envoyé_RQ");
} else if ($statut=="4save") {
list($nomagent,$prenomagent) = explode(' ', $id_responsable);
$sql_agent = "SELECT nomagent, prenomagent, email FROM agent WHERE nomagent = '$nomagent' AND prenomagent = '$prenomagent'";
$result_agent = mysql_query($sql_agent, $connexion);
$tab_agent = mysql_fetch_array($result_agent, MYSQL_ASSOC);
$email = $tab_agent[email];

if ($id_etat!="") {$etat=$id_etat;} else {$etat = $fin;}
if ($fin == "2") {
$date_validation = "0000-00-00";
$objet = "Votre proposition currative n'a pas été validée";
$message = "Bonjour,\n\nComplétez votre proposition en cliquant ci-dessous :\n\nhttp://xxxxx/qualite/signalement.php?id=".$id."\n";
} else {
$date_validation = date("Y-m-d");
$objet = "La proposition currative vient d'être validée";
$message = "Bonjour,\n\nConsultez cette fiche de signalement en cliquant ci-dessous :\n\nhttp://xxxxx/qualite/signalement.php?id=".$id."\n";
list($nom,$prenom) = explode(' ', $id_agent);
$sql_agent = "SELECT nomagent, prenomagent, email FROM agent WHERE nomagent = '$nom' AND prenomagent = '$prenom'";
$result_agent = mysql_query($sql_agent, $connexion);
$tab_agent = mysql_fetch_array($result_agent, MYSQL_ASSOC);
$email = $tab_agent[email];
}
if ($etat == "5") { $type_action = "Corrective"; $message .= "\nUne action Corrective est engagée sur cette fiche de signalement, veuillez prendre en charge cette action en cliquant sur le lien ci-dessous :\n\nhttp://xxxxxi/qualite/corprev.php?id=".$id."\n";} else if ($etat=="6") { $type_action = "Préventive"; $message .= "\nUne action Préventive est engagée sur cette fiche de signalement, veuillez prendre en charge cette action en cliquant sur le lien ci-dessous :\n\nhttp://xxxxxi/qualite/corprev.php?id=".$id."\n";}
$update = "UPDATE qualite_signalement SET validation_traitement='$validation_traitement', date_validation='$date_validation', id_etat = '$etat', type_action='$type_action', date_reception_rq_validation = NOW() WHERE id_signalement='$id'";
$result = mysql_query ($update, $connexion);

mail($email,$objet,$message,"From: Responsable Qualité <xxxxx@xxxxx.fr>");

header("location: signalement.php?statut=message_envoyé_responsable");
} else if ($statut == "annul") {
$etat == "13";
$date = date("Y-m-d");
$update = "UPDATE qualite_signalement SET id_etat = '$etat', date_validation = '$date' WHERE id_signalement='$id'";
$result = mysql_query ($update, $connexion);
header("location: signalement.php?statut=message_envoyé_responsable");
}

function recup_name($nom){
$file = "\\\\xxxxx\\pack\\username\\$nom.log";
if (is_file($file)) {$handle = fopen($file, "r");
$str = fread($handle, 1024);
$nom = trim(strtok(strtok($str, "=")));
return $nom;}
}
$sql4 = "SELECT * FROM qualite_postes WHERE ip like '$REMOTE_ADDR'";
$resultat4 = mysql_query ($sql4, $connexion);
$tab = mysql_fetch_array($resultat4, MYSQL_ASSOC);
$username=recup_name("$tab[nom]");
?>
<html>
<head>
<title>Fiche de signalement</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.titre1 {
font-size: 24px;
font-weight: bold;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
body {
background-color: #FFFFFF;
margin-left: 5px;
margin-top: 5px;
margin-right: 5px;
margin-bottom: 5px;
}
a {
font-size: 12px;
color: #000099;
}
a:hover {
color: #009999;
}
.titre2 {color: #FFFFFF}
input,select {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
border: 1px solid #009999;
}
.grasblanc {color: #FFFFFF; font-weight: bold; }
.grasrouge {
color: #FF0000;
font-weight: bold;
}
.petittext {font-size: 9px}
-->
</style>
<script language="JavaScript1.2">
function Afficher() {
document.getElementById('action').style.visibility="visible";
}
function Cacher() {
document.getElementById('action').style.visibility="hidden";
document.form2.etat[0].checked=false;
document.form2.etat[1].checked=false;
}
function auto_close(delai) {
opener=self;
setTimeout("self.close();",delai);
}
function proc() {
if (document.getElementById('id_processus').value!="A compléter ...") {
document.getElementById('processus').style.display="block";
} else {
document.getElementById('processus').style.display="none";
}
}
</script>
<link href="/rsi/css.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include("../include/calendrier.inc"); ?>
<table width="100%" border="0" cellspacing="0" cellpadding="4" style="border:1px #000000 solid">
<tr>
<td width="250"><a href="signalement.php"><img src="../images/rsi-couleur_entier.gif" width="242" height="100" border="0"></a></td>
<td align="center" valign="bottom"><span class="titre1">Fiche de Signalement </span></td>
<td align="right" valign="bottom">Fiche : <?php echo $id; ?></td>
</tr>
</table>
<?php
if (empty($statut) OR $attention) {
if ($attention) {?>
<p align="center" style="color:#FF0000; font-weight: bold;"><?php echo $attention; ?></p>
<?php } ?>
<form name="form1" method="post" action="?statut=save">
<table border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2"><span class="grasblanc">Fiche de signalement à compléter par l'agent et envoyée au Responsable Qualité par email : </span></td>
</tr>
<tr>
<td>Votre nom :
<select name="id_agent" id="id_agent"<?php if ($attention AND empty($id_agent)) {echo " style=\"background-color:#FF0000\"";}?>>
<option value="" <?php if (empty($id_agent) AND empty($username)) {echo "selected"; } ?>>A compléter ...</option>
<?php
$sql1 = "SELECT * FROM agent ORDER BY nomagent";
$resultat1 = mysql_query ($sql1, $connexion);
while ($tabagent = mysql_fetch_array($resultat1, MYSQL_ASSOC)) {
$nomagent = "$tabagent[nomagent]";
$nom = $tabagent[nomagent]." ".$tabagent[prenomagent];
echo "<option value=\"$nom\"";
if ($id_agent=="$nom"/* OR strtolower($username) == strtolower($tabagent[username]) */) {echo " selected";}
echo ">$nom</option>";
}
?>
</select></td>
<td align="right" title="A ne modifier que par les Auditeurs du Contrôle Interne">Type :
<label>
<input name="radiobutton" type="radio" value="Qualité" checked>
Qualité</label> <label>
<input type="radio" name="radiobutton" value="Contrôle Interne">
Contrôle Interne</label></td>
</tr>
<tr>
<td>Origine du signalement :
<select name="id_origine" id="select"<?php if ($attention AND empty($id_origine)) {echo " style=\"background-color:#FF0000\"";}?>>
<option value="" <?php if (empty($id_origine)) {echo "selected"; } ?>>A compléter ...</option>
<?php

$sqlorigine = "SELECT * FROM qualite_origine_signalement ORDER BY nom_origine";
$resultatorigine = mysql_query ($sqlorigine, $connexion);
while ($taborigine = mysql_fetch_array($resultatorigine, MYSQL_ASSOC)) {
echo "<option value=\"{$taborigine[nom_origine]}\"";
if ($id_origine==$taborigine[nom_origine]) {echo " selected";}
echo ">{$taborigine[nom_origine]}</option>";
}
?>
</select>
</td>
<td align="right">Date de constatation :
<input name="date_constatation" type="text" id="date_constatation" value="<?php echo date('d-m-Y'); ?>" size="10" maxlength="15" onClick="ds_sh(this);" readonly="readonly"></td>
</tr>
<tr>
<td>Type de signalement :
<select name="id_type" id="id_type"<?php if ($attention AND empty($id_type)) {echo " style=\"background-color:#FF0000\"";}?>>
<option value="" <?php if (empty($id_type)) {echo "selected"; } ?>>A compléter ...</option>
<?php
$sqltype = "SELECT * FROM qualite_type_signalement WHERE public <> 'RQ' ORDER BY nom_type";
$resultattype = mysql_query ($sqltype, $connexion);
while ($tabtype = mysql_fetch_array($resultattype, MYSQL_ASSOC)) {
echo "<option value=\"{$tabtype[nom_type]}\"";
if ($id_type==$tabtype[nom_type]) {echo " selected";}
echo ">{$tabtype[nom_type]}</option>";
}
?>
</select></td>
<td>Processus :
<select name="id_processus" id="id_processus"<?php if ($attention AND empty($id_processus)) {echo " style=\"background-color:#FF0000\"";}?> onChange="proc()">
<option value="" <?php if (empty($id_processus)) {echo "selected"; } ?>>A compléter ...</option>
<?php
$sqlprocessus = "SELECT * FROM qualite_pole";
$resultatprocessus = mysql_query ($sqlprocessus, $connexion);
while ($tabprocessus = mysql_fetch_array($resultatprocessus, MYSQL_ASSOC)) {
echo "<option value=\"{$tabprocessus[pole]} {$tabprocessus[nompole]}\"";
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}
echo ">{$tabprocessus[pole]} {$tabprocessus[nompole]}</option>";
}
?>
</select>
<select name="processus" id="processus<?php if ($attention AND empty($processus)) {echo " style=\"background-color:#FF0000\"";}?>" onChange="document.form1.description.value=this.value" style="display:none">
<option selected>Précisez le pôle concerné...</option>
<?php
$sqlpole="SELECT lettre_proc,nom_proc from qualite_processus2";
$resultatpole = mysql_query ($sqlpole, $connexion);
while ($tabpole = mysql_fetch_array($resultatpole, MYSQL_ASSOC)) {?>
<option value="<?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?>"><?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?></option>
<?php } ?>
</select></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Description du signalement : </td>
</tr>
<tr>
<td colspan="2"><textarea name="description" cols="80" rows="5" id="description"<?php if ($attention AND empty($description)) {echo " style=\"background-color:#FF0000\"";}?>><?php if (!empty($description)) {echo "$description";} ?></textarea></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Solution proposée : </td>
</tr>
<tr>
<td colspan="2"><textarea name="solution_propose" cols="80" rows="3" id="solution_propose"></textarea></td>
</tr>
<tr>
<td> </td>
<td align="right"><input type="submit" name="Submit" value="Envoyer au R.Q."></td>
</tr>
</table>
</form>
<?php
} else if ($statut=="message_envoyé_RQ") {
?>
<p>Le Responsable Qualité vient d'être informé de votre dépôt de Fiche de Signalement.</p>
<?php if (!empty($idsignalement)) { ?><p>Votre Fiche de Signalement porte le n°<?php echo $idsignalement; ?>.</p><?php } ?>
<p>Elle sera prise en compte dans les plus brefs délais.</p>
<p>Cordialement,</p>
<p>Le Service Qualité.</p>
<p> </p>
<p>ATTENTION cette fenêtre va se fermer automatiquement dans 5 secondes </p>
<script type="text/javascript">auto_close(5000);</script>
<?php
} else if ($statut=="etape2") {
?>
<script language="javascript1.2">function init()
{
oDateMask = null;
oDateMask = new Mask("jj-mm-aaaa", "date");
oDateMask.attach(document.form2.date_realisation);

}</script>
<form name="form2" method="post" action="?statut=2save">
<table border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2"><span class="grasblanc">Fiche de signalement complété par l'agent : </span></td>
</tr>
<tr>
<td colspan="2">Nom de l'agent : <b><?php echo "$tabfiche[id_agent]";?></b></td>
</tr>
<tr>
<td>Origine du signalement : <b><?php echo "$tabfiche[id_origine]";?></b></td>
<td align="right">Date de constatation : <b><?php echo date_format2($tabfiche[date_constatation]); ?></b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b>
<?php echo "$tabfiche[id_type]";?>
</b> </td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Description du signalement : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[description])?></b></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Solution proposée : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[solution_propose])?></b></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#009999" class="titre2" style="border-top:1px #000000 solid"><strong>Renseignements à compléter par le Responsable Qualité : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en charge : <b><?php echo date('d-m-Y'); ?></b></td>
</tr>
<tr>
<td colspan="2">Processus concerné :
<select name="id_processus" id="id_processus">
<option selected>A compléter ...</option>
<?php $sql = "SELECT * FROM qualite_processus2 WHERE etat_proc <> 'Annulé'";
$resultat = mysql_query ($sql, $connexion);
while ($tabproc = mysql_fetch_array($resultat, MYSQL_ASSOC)) {?>
<option value="<?php echo "$tabproc[lettre_proc] - $tabproc[nom_proc]"; ?>"><?php echo "$tabproc[lettre_proc] - $tabproc[nom_proc]"; ?></option>
<?php } ?>
<option value="Autre">Autre</option>
</select></td>
</tr>
<td colspan="2"><select name="processus" id="processus<?php if ($attention AND empty($processus)) {echo " style=\"background-color:#FF0000\"";}?>">
<option selected>Précisez le pôle concerné...</option>
<?php
$sqlpole="SELECT lettre_proc,nom_proc from qualite_processus2";
$resultatpole = mysql_query ($sqlpole, $connexion);
while ($tabpole = mysql_fetch_array($resultatpole, MYSQL_ASSOC)) {?>
<option value="<?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?>"><?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?></option>
<?php } ?>
</select></td>
<tr>
<td colspan="2">Type de signalement :
<select name="id_type_rq" id="select5">
<option selected>A compléter ...</option>
<?php
$sqltype = "SELECT * FROM qualite_type_signalement WHERE public <> 'Agent' ORDER BY nom_type";
$resultattype = mysql_query ($sqltype, $connexion);
while ($tabtype = mysql_fetch_array($resultattype, MYSQL_ASSOC)) {
echo "<option value=\"{$tabtype[nom_type]}\">{$tabtype[nom_type]}</option>";
}
?>
</select></td>
</tr>
<tr>
<td colspan="2">Responsable du traitement :
<select name="id_responsable" id="select4">
<option selected>A compléter ...</option>
<?php
$sql1 = "SELECT * FROM agent ORDER BY nomagent";
$resultat1 = mysql_query ($sql1, $connexion);
while ($tabagent = mysql_fetch_array($resultat1, MYSQL_ASSOC)) {
echo "<option value=\"{$tabagent[nomagent]} {$tabagent[prenomagent]}\">{$tabagent[nomagent]} {$tabagent[prenomagent]}</option>";
}
?>
</select></td>
</tr>
<tr>
<td colspan="2">Date limite de réponse fixée :
<input name="date_realisation" type="text" id="date_realisation" value="<?php echo date('d-m-Y'); ?>" size="10" maxlength="15" onClick="ds_sh(this);" readonly="readonly"></td>
</tr>
<tr>
<td align="right" colspan="2"><input name="id" type="hidden" id="id" value="<?php echo $id; ?>"> <input type="submit" name="Submit2" value="Mise à jour du R.Q."></td>
</tr>
</table>
</form>
<?php
} else if ($statut=="message_envoyé_responsable") {
?>
<p>Le Responsable vient d'être informé de votre mise à jour sur cette Fiche de Signalement.</p>
<p>Cordialement,</p>
<p>Le Service Qualité.</p>
<p> </p>
<p>ATTENTION cette fenêtre va se fermer automatiquement dans 5 secondes </p>
<script type="text/javascript">auto_close(5000);</script>
<?php
} else if ($statut=="etape3") {
?>
<script language="javascript">
function affiche_submit() {
if (document.getElementById('date_fixee').value=="") {
document.getElementById('bouton_envoyer').disabled = true;
} else {
document.getElementById('bouton_envoyer').disabled = false;
}
}
</script>
<form name="form2" method="post" action="?statut=3save" onMouseOver="affiche_submit()">
<table border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2"><span class="grasblanc">Fiche de signalement complété par l'agent :
<input name="id2" type="hidden" id="id2" value="<?php echo $id; ?>">
</span></td>
</tr>
<tr>
<td colspan="2">Nom de l'agent : <b><?php echo "$tabfiche[id_agent]";?></b></td>
</tr>
<tr>
<td>Origine du signalement : <b><?php echo "$tabfiche[id_origine]";?></b></td>
<td align="right">Date de constatation : <b>
<?php echo date_format2($tabfiche[date_constatation]); ?>
</b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b> <?php echo "$tabfiche[id_type]";?> </b> </td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Description du signalement : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[description])?></b></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Solution proposée : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[solution_propose])?></b></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#009999" class="titre2" style="border-top:1px #000000 solid"><strong>Renseignements complétés par le Responsable Qualité : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en charge : <strong>
<?php echo date_format2($tabfiche[date_reception_rq]); ?>
</strong></td>
</tr>
<tr>
<td colspan="2">Processus concerné : <b>
<?php echo "$tabfiche[id_processus]";?>
</b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b>
<?php echo $tabfiche[id_type_rq]; ?></b></td>
</tr>
<tr>
<td colspan="2">Responsable du traitement : <b>
<?php echo $tabfiche[id_responsable]; ?>
<input name="id_responsable" type="hidden" id="id_responsable" value="<?php echo $tabfiche[id_responsable]; ?>">
</b> </td>
</tr>
<tr>
<td colspan="2">Date limite de réponse fixée : <strong>
<?php echo date_format2($tabfiche[date_realisation]); ?>
</strong></td>
</tr>
<tr>
<td align="right" colspan="2"> </td>
</tr>
<tr bgcolor="#009999">
<td colspan="2" class="titre2" style="border-top:1px #000000 solid"><strong>Renseignements à compléter par le Responsable désigné : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en compte par le responsable : <b><?php if ($tabfiche[date_reception_responsable] == "0000-00-00") {echo date('d-m-Y');} else {echo date_format2($tabfiche[date_reception_responsable]); } ?>
<input name="date_reception_responsable" type="hidden" id="date_reception_responsable" value="<?php if ($tabfiche[date_reception_responsable] == "0000-00-00") {echo date('d-m-Y');} else {echo date_format2($tabfiche[date_reception_responsable]);} ?>">
</b></td>
</tr>
<tr>
<td colspan="2">Traitement curratif proposé : </td>
</tr>
<tr>
<td colspan="2"><textarea name="traitement_curatif" cols="80" id="traitement_curatif" <?php if (empty($tabfiche[traitement_curatif])) {?>rows="3" onKeyPress="affiche_submit()">A compléter ...<?php } else { $row = substr_count($tabfiche[traitement_curatif], "\n")+5; echo " rows='$row'>"; $tabfiche[traitement_curatif]=$tabfiche[traitement_curatif]."\n\n----- Mise à jour du ".date("d-m-Y H:i")." par $username -----\n"; echo $tabfiche[traitement_curatif]; } ?></textarea></td>
</tr>
<tr>
<td colspan="2">Date limite de réalisation :
<input name="date_fixee" type="text" id="date_fixee" onClick="ds_sh(this);affiche_submit()" size="10" maxlength="15" readonly="readonly">
<span class="petittext">* obligatoire</span></td>
</tr>
<tr align="right">
<td colspan="2"><input name="id" type="hidden" id="id" value="<?php echo $id; ?>"><input name="bouton_envoyer" type="submit" id="bouton_envoyer" value="Envoyer au R.Q." disabled="true"></td>
</tr>
<?php if (!empty($tabfiche[validation_traitement])) { ?><tr>
<td colspan="2" style="border-top:1px #000000 solid">Justificatif : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[validation_traitement]);?></b></td>
</tr><?php } ?>
</table>
</form>
<?php
} else if ($statut=="etape4") {
?>

<form name="form2" method="post" action="?statut=4save">
<table border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2"><span class="grasblanc">Fiche de signalement complété par l'agent :

</span></td>
</tr>
<tr>
<td colspan="2">Nom de l'agent : <b><?php echo "$tabfiche[id_agent]";?>
<input name="id_agent" type="hidden" id="id_agent" value="<?php echo $tabfiche[id_agent]; ?>">
</b></td>
</tr>
<tr>
<td>Origine du signalement : <b><?php echo "$tabfiche[id_origine]";?></b></td>
<td align="right">Date de constatation : <b>
<?php list($an,$mois,$jour) = explode('-', $tabfiche[date_constatation]); echo "$jour-$mois-$an"; ?>
</b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b> <?php echo "$tabfiche[id_type]";?> </b> </td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Description du signalement : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[description])?></b></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Solution proposée : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[solution_propose])?></b></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" bgcolor="#009999" class="titre2" style="border-top:1px #000000 solid"><strong>Renseignements complétés par le Responsable Qualité : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en charge : <strong>
<?php echo date_format2($tabfiche[date_reception_rq]); ?></strong></td>
</tr>
<tr>
<td colspan="2">Processus concerné : <b> <?php echo "$tabfiche[id_processus]";?> </b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b> <?php echo $tabfiche[id_type_rq]; ?></b></td>
</tr>
<tr>
<td colspan="2">Responsable du traitement : <b> <?php echo $tabfiche[id_responsable]; ?>
<input name="id_responsable" type="hidden" id="id_responsable" value="<?php echo $tabfiche[id_responsable]; ?>">
</b> </td>
</tr>
<tr>
<td colspan="2">Date limite de réponse fixée : <strong>
<?php echo date_format2($tabfiche[date_realisation]); ?>
</strong></td>
</tr>
<tr>
<td align="right" colspan="2"> </td>
</tr>
<tr bgcolor="#009999">
<td colspan="2" class="titre2" style="border-top:1px #000000 solid"><strong>Renseignements à compléter par le Responsable désigné : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en compte par le responsable : <b>
<?php echo date_format2($tabfiche[date_reception_responsable]); ?>
</b></td>
</tr>
<tr>
<td colspan="2">Traitement curratif proposé : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[traitement_curatif])?></b></td>
</tr>
<tr><td colspan="2">Date limite de réalisation : <b><?php echo date_format2($tabfiche[date_realisation_fixee]); ?></b></td></tr>
<tr align="right">
<td colspan="2"> </td>
</tr>
<tr bgcolor="#009999">
<td colspan="2" class="titre2" style="border-top:1px #000000 solid"><strong>Décision à compléter par le R.Q. : </strong></td>
</tr>
<tr>
<td colspan="2">Date de réception de la fiche : <b><?php if ($tabfiche[date_reception_rq_validation] == "0000-00-00") {echo date('d-m-Y'); $date_reception_rq_validation = date('Y-m-d'); $update = "UPDATE signalement SET date_reception_rq_validation='$date_reception_rq_validation' WHERE id_signalement='$id'"; $result = mysql_query ($update, $connexion);} else {echo date_format2($tabfiche[date_reception_rq_validation]);}?></b></td>
</tr>
<tr>
<td colspan="2">Validation du traitement curratif proposé : </td>
</tr>
<tr>
<td colspan="2"><textarea name="validation_traitement" cols="80" id="validation_traitement" <?php if (empty($tabfiche[validation_traitement])) {?>rows="3">Justification de la validation ou du refus de la proposition ...<?php } else { $row = substr_count($tabfiche[validation_traitement], "\n")+5; echo " rows='".$row."'>"; $tabfiche[validation_traitement]=$tabfiche[validation_traitement]."\n\n----- Mise à jour du ".date("d-m-Y H:i")." -----\n"; echo $tabfiche[validation_traitement]; } ?></textarea></td>
</tr>
<tr>
<td colspan="2"><table border="0" cellspacing="0" cellpadding="2">
<tr>
<td><input name="fin" type="radio" onClick="Cacher()" value="2" checked>
Refusée </td>
<td><input type="radio" name="fin" value="4" onClick="Afficher()">
Cloturée<span class="petittext"> (action corrective ou préventive à engager) </span></td>
</tr>
</table></td>
</tr>
<tr align="left">
<td colspan="2"><div id="action" style="visibility:hidden"><table border="0" cellspacing="0" cellpadding="2">
<tr>
<td><input type="radio" name="id_etat" value="5" id="etat">
Action corrective</td>
<td><input type="radio" name="id_etat" value="6" id="etat">
Action préventive</td>
</tr>
</table></div></td>
</tr>
<tr align="right">
<td colspan="2"><input name="id" type="hidden" id="id" value="<?php echo $id; ?>">
<input type="submit" name="Submit4" value="Valider décision"></td>
</tr>
</table>
</form>
<?php
} else if ($etat>="5") {
?><br>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2"><span class="grasblanc">Fiche de signalement complété par l'agent :
<input name="id222" type="hidden" id="id222" value="<?php echo $id; ?>">
</span></td>
</tr>
<tr>
<td colspan="2">Nom de l'agent : <b><?php echo $tabfiche[id_agent];?></b></td>
</tr>
<tr>
<td>Origine du signalement : <b><?php echo $tabfiche[id_origine];?></b></td>
<td align="right">Date de constatation : <b>
<?php echo date_format2($tabfiche[date_constatation]); ?>
</b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b> <?php echo $tabfiche[id_type];?> </b> </td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Description du signalement : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[description])?></b></td>
</tr>
<tr valign="bottom">
<td height="30" colspan="2">Solution proposée : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[solution_propose])?></b></td>
</tr>
</table>
<br>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr>
<td colspan="2" bgcolor="#009999" class="titre2"><strong>Renseignements complétés par le Responsable Qualité : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en charge : <strong>
<?php echo date_format2($tabfiche[date_reception_rq]); ?>
</strong></td>
</tr>
<tr>
<td colspan="2">Processus concerné : <b> <?php echo $tabfiche[id_processus];?> </b></td>
</tr>
<tr>
<td colspan="2">Type de signalement : <b> <?php echo $tabfiche[id_type_rq]; ?></b></td>
</tr>
<tr>
<td colspan="2">Responsable du traitement : <b> <?php echo $tabfiche[id_responsable]; ?>
<input name="id_responsable2" type="hidden" id="id_responsable3" value="<?php echo $tabfiche[id_responsable]; ?>">
</b> </td>
</tr>
<tr>
<td colspan="2">Date limite de réponse fixée : <strong>
<?php echo date_format2($tabfiche[date_realisation]); ?>
</strong></td>
</tr>
</table>
<br>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2" class="titre2"><strong>Renseignements complété par le Responsable désigné : </strong></td>
</tr>
<tr>
<td colspan="2">Date de prise en compte par le responsable : <b>
<?php echo date_format2($tabfiche[date_reception_responsable]); ?>
</b></td>
</tr>
<tr>
<td colspan="2">Traitement curratif proposé : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[traitement_curatif])?></b></td>
</tr>
<tr><td colspan="2">Date limite de réalisation : <b><?php echo date_format2($tabfiche[date_realisation_fixee]); ?></b></td></tr>
</table>
<br>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" style="border:1px #000000 solid">
<tr bgcolor="#009999">
<td colspan="2" class="titre2"><strong>Décision complété par le R.Q. : </strong></td>
</tr>
<tr>
<td colspan="2">Date de réception de la fiche : <b>
<?php echo date_format2($tabfiche[date_reception_rq_validation]); ?>
</b></td>
</tr>
<tr>
<td colspan="2">Validation du traitement curratif proposé : </td>
</tr>
<tr>
<td colspan="2"><b><?php echo nl2br($tabfiche[validation_traitement])?></b></td>
</tr>
<tr>
<td colspan="2" align="right"><span class="grasrouge">
<?php if ($tabfiche[id_etat] >= "4") {echo "Fiche Cloturée le ".date_format2($tabfiche[date_validation]);} ?>
</span></td>
</tr>
<tr align="right">
<td colspan="2"><?php if ($tabfiche[id_etat] >= "5") {echo $tabfiche[nom_etat];}?>
</td>
</tr>
</table>
<?php
} else {echo "<br>La Fiche n° ".$id." n'existe plus.";}
?>
<?php include("../include/basdepage.php"); ?>
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
27 janv. 2009 à 12:09
oulà, pas le temps de tout décortiquer trop de formulaire et de redirection.

tu remplaces juste la partie avec l'affichage de tes 2 selects.
Sinon, je n'ai pas regardé si le traitement était là aussi mais pour le traitement tu commences par un test :
if (isset($_POST["id_processus"]) && isset($_POST["processus"]) )
en gros tu vérifies qu'il y a bien eu un choix dans tes 2 selects pour faire ton traitement.
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
27 janv. 2009 à 13:31
Bon je vais tester de ce pas et te tiens au courant. Merci de ton aide en tout cas.
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 09:35
Bonjour,

Mon problème qui se pose est tout simple:
Comme tu l'écris:

<form method="post" action="ton_url">
requête et code de ton premier select ( name : id_processus value : la lettre [A, B ou C....] onChange=this.form.submit(); )
<?php
if (isset($_POST["id_processus"]))
{
requête : "SELECT * FROM qualite_processus2 WHERE id_processus like '%".$_POST["id_processus"]."%' "
affichage de ton select
}
?>
</form>

Les 2 requetes font parties d'un formulaire. Or toutes mes requetes sont déjà dans un formulaire. Alors est-il possible d'intégrer un formulaire dans un autre ?
0
moi j'ai essayé de mettre un formulaire dans un autre et sa bugue donc je pensse pas que sa soit possible.....
0
moi j'ai essayé de mettre un formulaire dans un autre et sa bugue donc je pensse pas que sa soit possible.....
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
28 janv. 2009 à 10:02
Si le formulaire se submit sur la même page, dans ce cas, c'est bon, tu n'as pas à en créer un de plus.

Car il est impossible d'imbriquer des formulaires.
0
sniper > Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010
28 janv. 2009 à 10:05
Oui ecoute Mickey UFC trés bonne personne!! ;-)
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 11:40
Bon alors voila ce que j'ai fait :

<td>Processus :
<select name="id_processus" id="id_processus"<?php if ($attention AND empty($id_processus)) {echo " style=\"background-color:#FF0000\"";}?> onChange="proc()">
<option value="" <?php if (empty($id_processus)) {echo "selected"; } ?>>Sélectionner...</option>
<?php
$sqlprocessus = "SELECT DISTINCT pole,nompole FROM qualite_pole";
$resultatprocessus = mysql_query ($sqlprocessus, $connexion);
while ($tabprocessus = mysql_fetch_array($resultatprocessus, MYSQL_ASSOC)) {
echo "<option value=\"{$tabprocessus[pole]} {$tabprocessus[nompole]}\"";
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}
echo ">{$tabprocessus[pole]} {$tabprocessus[nompole]}</option>";
}
?>
</select>
<?php
if (isset($_POST["id_processus"]))
{?>
<select name="processus" id="processus<?php if ($attention AND empty($processus)) {echo " style=\"background-color:#FF0000\"";}?>" onChange="document.form1.description.value=this.value" style="display:none">
<option selected>Précisez le pôle concerné...</option>
<?php
$sqlpole="SELECT * FROM qualite_processus2 WHERE id_pole like '%".$_POST["id_processus"];
$resultatpole = mysql_query ($sqlpole, $connexion);
while ($tabpole = mysql_fetch_array($resultatpole, MYSQL_ASSOC)) {
?>
<option value="<?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?>"><?php echo "$tabpole[lettre_proc] - $tabpole[nom_proc]"; ?></option>
<?php
}
?>
</select>
<?php
}
?>
</td>


Le hic c'est que je pense qu'il faut que je fasse un bouton submit apres le premier choix pour pouvoir recharger la page, non ?
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
28 janv. 2009 à 11:57
Tu veux faire koi en faite ???
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 12:03
Je reprends parce que c'est pas forcément très clair.
J'ai un champ de formulaire dans lequel je choisis des processus :
- A - situation administrative
- B - Conseils et informations
- C - Acquisition de droits
etc. jusqu'à P - management

Ce choix, je l'effectue dans le premier select (dont le "name" est id_processus")

Lorsque ce choix est fait, je souhaite que dans mon champ suivant (champ "pole"), j'ai la liste des champs correspondant au processus choisi (A1, A2 si j'ai selectionné A dans id_processus, B1, B2 pour B, etc.)
La, a l'heure actuelle j'ai tous les poles (A1, A2, B1, B2, C1, C2 etc.) qui apparaissent quelque soit le processus choisi.

En gros, je souhaiterais effectuer un "filtre" sur ce champ "pole" en fonction de mon premier champ "processus".
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
28 janv. 2009 à 12:06
Ah ok, tu veux des listes chainés !! En faite il faut que tu utilise une fonction java script .. Combien de liste déroulante tu auras ??? que deux ???
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 13:08
Oui a priori il n'y en aurait que 2 (le processus et le pole).

Edit:
En fait, il y a plusieurs listes déroulantes (nom, pole, processus, etc.) mais uniquement pole et processus sont liées.
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
28 janv. 2009 à 14:57
Dans ton premier select, tu remplaces ton onChange par OnChange=this.form.submit();

Je ne suis pas sûr que proc() serve encore. si oui OnChange=proc();this.form.submit();
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 15:23
J'ai essayé de changer le onchange, mais ca ne marche pas. Cette fois, le champ du pole ne s'affiche même pas.

Ci joint un exemple.
[URL=https://imageshack.com/][IMG]http://img440.imageshack.us/img440/8794/sanstitre1qq5.th.jpg[/IMG][/URL]
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
28 janv. 2009 à 15:45
Fais un echo pour vérifier que tu rentres bien.
if (isset($_POST["id_processus"]))
{
echo $_POST["id_processus"];

Sinon vérifie du côté de ton css et enlève display="none"

Tu as bien enlevé proc() ?
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 16:07
On doit se rapprocher ! ;)

J'ai fait un test avec ce que tu m'as dis et voilà ce que j'obtiens
https://imageshack.com/

Le probleme vient d'ici je pense
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}

La variable $id_processus recoit la valeur [id_pole]. Normalement la valeur id_pole de la table qualite_processus2 est un chiffre qui est relié à la clé id_pole de la table qualite_pole.

Ce que je ne comprends pas alors, c'est pourquoi ca m'affiche A - Situation adminsitrative (en gros ca reprend la lettre du pole et le nom)
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
28 janv. 2009 à 16:27
Enlève ce qui est en gras :
echo "<option value=\"{$tabprocessus[pole]} {$tabprocessus[nompole]}\"";
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}
echo ">{$tabprocessus[pole]} {$tabprocessus[nompole]}</option>";
0
imer2008 Messages postés 17 Date d'inscription mardi 27 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 17:15
Ca me met exactement le meme résultat.

Edit:

J'ai testé avec ce code du coup:
<?php
$sqlprocessus = "SELECT * FROM qualite_pole";
$resultatprocessus = mysql_query ($sqlprocessus, $connexion);
while ($tabprocessus = mysql_fetch_array($resultatprocessus, MYSQL_ASSOC)) {
echo "<option value=\"{$tabprocessus[id_pole]}\"";
if ($id_processus==$tabprocessus[id_pole]) {echo " selected";}
echo ">{$tabprocessus[id_pole]}</option>";
}
?>
</select><br>

<?php
if (isset($_POST["id_processus"]))
{
echo $_POST["id_processus"];
?>
<br>
<select name="processus" id="processus<?php if ($attention AND empty($processus)) {echo " style=\"background-color:#FF0000\"";}?>">
<option selected>Précisez le pôle concerné...</option>
<?php
$sqlpole="SELECT * FROM qualite_processus2 WHERE qualite_processus2.id_pole = '%".$_POST["id_processus"];


En ne faisant que s'affichant id_pole (donc le chiffre), $id_processus prend bien la valeur id_pole cette fois, et dans la requete suivante:
$sqlpole="SELECT * FROM qualite_processus2 WHERE qualite_processus2.id_pole = '%".$_POST["id_processus"];

Où là je lui demande de lme sélectionner tout les champs ou id_pole est égal à $id_processus.

Eh bien, ca ne fonctionne pas... Donc la je ne vois vraiment pas ce qui cloche...
https://imageshack.com/
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
28 janv. 2009 à 17:31
Tu peux me donner un enregistrement de chacunes de tes tables :
ex : maTable1
nomDecolonne1 : valeurExemple
nomDecolonne2 : valeurExemple
.
.
.


Edit :
Essaye de changer ds ta 2ème requête "%".$_POST[] par $_POST[]."%"
Car : %A veut dire finissant par A et A% commencant par A il me semble

De plus, tu ne fermes pas l'apostrophe. id= ' " . $_POST[] . "%'"
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 05:13
Bon voila ske ta besoin ..

Alors tu auras besoin de 4 pages:

La première vue que tu devra utiliser une fonction javascript tu va créer une nouvelle page, et tu cole tout ca dedan. T'appel cette page "scriptlistederoulante.js":


 function getXhr(){
                 var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest,pouvez-vous le mettre à jour?..."); 
				   xhr = false; 
				} 
                                return xhr;
			}
		     
			 
			 
			 
			 
			function remplir_form(idProcess)
			{
				//pour l'exemple on recupere l'id courant à l'intérieur de la fonction
				//mais normalement c'est un parametre à passer à la fonction....
				var Ld1Id=idProcess;
				var xhr = getXhr();
				// On définit ce qu'on va faire quand on aura la réponse
				//pour les methodes de l'objet xhr allez faire un tour le net;) 
			
				xhr.onreadystatechange = function()
				{
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200)
					{
						//la reponse est retournée au format texte(pour faire de l'ajaX le format de retour doit etre du Xml....)
						lareponse = xhr.responseText;
						//allez :il faut traiter la chaine de caractere renvoyee par le script php(action.php)
							
							var w = document.getElementById("Liste2");
							var content = w.innerHTML;
							content = lareponse;
							w.disabled = false;
							w.innerHTML = content;
							//A voir >>>DOM(pour l'accès et modifications d'une page web en direct
							//document.getElementById('Liste2').innerHTML = lareponse;
					}
				}
				// Ici on va voir comment faire du post
				//il faut verifier a koi correspond la valeur true.....
				xhr.open("POST","valideLD2.php",true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
				// ne pas oublier de poster les arguments
				
				xhr.send("Ld1="+Ld1Id);
			}
			
			



Ensuite tu crées une autre page qui va s'appeler "valideLD1.php" :

 include ("connexionBDD.php"); //Connexion à la base de données
     $rq="Select Num_processus, Libelle_processus from table_processus order by Libelle_processus;";//REVOI LA REQUETE
     $rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php 
     $rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php 

     $result= mysql_query ($rq) or die ("Select impossible");
	 
	 
     $retour = '<select style="width: 320" name="Liste1" id="Liste1" size="1" onchange="remplir_form(this[this.selectedIndex].value);">';
     $retour .= '<option selected value="">< Processus ></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();
     echo $retour;



Ensuite crées une nouvelle page, tu l'appel "valideLD2.php":

	@header('Content-type:text/xml; charset=utf-8');
	
    include ("connexionBDD.php");
     $Ld1_retour =''; //id_département clé de la liste déroulante 1
    
     if (isset($_POST['Ld1'])) {$Ld1_retour = $_POST['Ld1'];}
	 
	 
     if ($Ld1_retour!='') {

     $rq="Select Num_pole, Libelle_pole from table_pole where Num_processus=".$Ld1_retour." order by Libelle_pole;";//REVOI LA REQUETE
     $rq_pos_id=0;
     $rq_pos_val=1;
     $result= mysql_query ($rq) or die ("Select impossible");
     $retour = '';
     $retour .= '<option selected value="">< Pole ></option>';
    
     if (mysql_num_rows($result) != 0) {
     while ($row = mysql_fetch_row($result)) {
     $retour .= '<option value="'. $row[$rq_pos_id] .'">'. htmlentities($row[$rq_pos_val]) .'</option>';
     }
     $retour .= '';
     } else {
     $retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Pole ></option></select>';
     }
     mysql_free_result($result);
     mysql_close();
     }else{
     $retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Pole ></option></select>';
     }
     echo $retour;
	 



Et enfin la page ou tu mets ton formulaire, rajoute ça ou tu doi mettre les listes. Je supose que tu a fais un tableau, donc je me permet de commencer par un <tr>:

<tr>
				
				<td>Processus:</td> 
				<td>  
						       <?php
							   include("valideLD1.php");
							   ?>
				</td>
				</tr>			 
				<tr>			 
				<td>Pole:</td> 
				<td> 			 
						     <span id="niv2">
							<select style="width: 320" name="Liste2" id="Liste2" onchange="remplir_form2(this[this.selectedIndex].value);" disabled="disabled">
							<option>< Pole ></option>
							</select>
							</span> 
				</td>			 
				</tr>		  



Voila et n'oubli pas un petit détail pour que ca marche, mets ça dans le <head> de la page de ton formulaire :


<script type="text/javascript" src="scriptlistederoulante.js"></script>


voila essaye
0