cs_Vins974
Messages postés104Date d'inscriptionlundi 19 janvier 2009StatutMembreDernière intervention20 février 2009
-
20 janv. 2009 à 12:07
cs_Vins974
Messages postés104Date d'inscriptionlundi 19 janvier 2009StatutMembreDernière intervention20 février 2009
-
21 janv. 2009 à 05:02
Bonjour ,
J'ai un problème.. Je crée un site internet, et j'ai utilisé AJAX. Pour pouvoir effectuer trois listes liées.. Elles sont donc chacune dépendante de la précédente. Cependant lorsque je clique sur un bouton modifier, je veux faire en sorte qu'une autre page s'ouvre, et que dans la valeaure initiale de chaque liste déroulante soit définit par un élément retrouvé par une requête SQL. Mais voila je n'arrive pas à l'initialiser.
Voilà un morceau du code de ma page ValideLD2.php c'est la liste déroulante numéro 2, qui s'active une fois que la 1ere liste déroulante est défini :
Ici logiquement, sa valeur initiale est "ca marche", mais lorsque je fais un echo $_POST['Liste2'] Rien ne s'affiche. Aidez moi svp!!!!!!
[ 'Tu trouveras toujours plus fort que toi' ]
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 janv. 2009 à 12:12
bonjour,
je t'ai donné un exemple ( à adapter ) ici où tu n'as d'ailleurs pas daigné répondre !?!?
c'est sympa pour ceux qui tentent d'aider
je tente une nouvelle fois ? peut-être ici
auras-tu la politesse de le faire ?
: on n'a pas assez de code pour répondre
Cordialement[mon Site][M'écrire]Bul
cs_Vins974
Messages postés104Date d'inscriptionlundi 19 janvier 2009StatutMembreDernière intervention20 février 2009 20 janv. 2009 à 12:45
C'est gentil de m'avoir répondu, mais la dernière fois, lorsque j'avais poser la question, j'ai eu de suite le résultat et du coup je ne m'étais pas référer à ce que vous m'avez montré, vu que je suis un peu pris par le temps. Je suis d'ailleurs désolé.
Je vous donne tout le code alors.
J'ai mis en rouge les points importants, et en violet les points important quii ne marche pas
Ma page modifier.php :
<?php
session_start();
$login=$_SESSION['login'];//transport de la variable login afin de savoir qui est l'agent connecte
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<?php
if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Firefox' ) !== FALSE ) // Si le navigateur choisi est Firefox
{
echo '<link rel="stylesheet" media="screen" type="text/css" title="css" href="style_fx.css" />'; //Il met la feuille de style adapté à firefox
}
else
{
echo '<link rel="stylesheet" media="screen" type="text/css" title="css" href="style_ie.css" />'; //Sinon il met la feuille de style adapté à IE
}
?>
<title>Modification d'une intervention</title>
<script type="text/javascript">
var Ld1Id=''; //initialisation des variables
var Ld2Id='';
var id_liste='';
function ValideLd2(val) {
Ld1Id=val; //id_service
id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
ObjetXHR(LD_URL)
// Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
if (Ld2Id!='') {ValideLd3(''); }
}
function ValideLd3(val) {
Ld2Id=val; //id_cellule
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();
}
}
}
}
</script>
</head>
<?php
if(isset($_SESSION['login'])) // Si il existe un login
{
include ("connexionok.php"); //afficher la page "connexionok.php"
}
else
{
include ("connexion.php");//sinon afficher la page "connexion"
}
include ("menuagent.php");//affiche le menu
?>
<?php
include ("connexionBDD.php"); //connexion à la base de donnees
$resultat5=mysql_query("SELECT Libelle_type FROM type");// Permet de retourner le libelle de tous les types
if (! $resultat5) { echo "Erreur requete"; exit;} //message en cas d'erreure
$num_intervention = $_GET['interv']; // le numero de l'intervention a ete place dans une variable pour pouvoir la transporté. Maintenant elle est mis dans une variable
// requete retournant toutes les interventions en details de l'agent connecte
$sql1 = "SELECT *
FROM intervention, agent, service, type, cellule, user
WHERE intervention.Num_agent = agent.Num_agent
AND service.Num_service = intervention.Num_service
AND type.Num_type = intervention.Num_type
AND user.Num_user=intervention.Num_user
AND cellule.Num_cellule=intervention.Num_cellule
AND Num_intervention = '$num_intervention'";
$resultsql = mysql_query($sql1) or die('Erreur SQL! '.$sql1.''.mysql_error()); // en cas d'erreure
$rep = mysql_fetch_assoc($resultsql);
$num_agent = $rep['Num_agent'];
?>
Modifier une intervention
<hr>
<?php
$modif=1;
if (!isset($_POST['modifier']))
{
?>
Vous pouvez ici modifier comme bon vous semble cette intervention. Pour valider, cliquer sur "Modifier".
<!-- tableau sans bordure pour organiser et tout aligner -->
----
Service* :,
<?php
include ("valideLd1.php");
?><!--Pour remplir la liste déroulante 1-->
,
----
Cellule* :,
<?php
include ("valideLd2.php");
?> <!--Pour remplir la liste déroulante 2-->
,
----
Utilisateur* :,
<?php
include ("valideLd3.php");
?> <!--Pour remplir la liste déroulante 3-->
,
----
Type d'intervention :,
<select style="width: 320" name="type"><!-- Liste deroulante, permettant de choisir les types -->
<option><?php echo $rep['Libelle_type']; ?></option><!-- le premier element afficher dans la liste deroulante -->
<?php
while ($ligne5=mysql_fetch_array($resultat5))//boucle permettant de lire tous les types existant dans la base de données
{
?>
<option>
<?php
echo ''.$ligne5['Libelle_type'].''; // Il affiche dans la liste deroulante, tant qu'existe des "libelle_type"
?>
</option>
<?php
}
?>
</select>
,
----
Libellé d'intervention :,
">, <!-- zone de texte -->
----
Durée (en minutes) :,
">, <!-- zone de texte n'autorisant uniquement la saisie de chiffres-->
----
,
/!\ Cliquez sur la date pour la modifier /!\, <!--// Msg pour renseigner -->
----
Date début :,
"><?php include ("fonctioncalendrier.php");?>, <!-- zone de texte permettant d'avoir recours a un calendrier, en appelant la \"fonctioncalendrier.php\" -->
----
Date fin :,
"><?php include ("fonctioncalendrier.php");?>, <!-- zone de texte permettant d'avoir recours a un calendrier, en appelant la \"fonctioncalendrier.php\" -->
<center>
<!-- bouton modifier une intervention -->
</center>
</form>
<?php
}
if (isset($_POST['modifier']) )
{
$num_serv=$_POST['Liste1']; //chaque valeure entrée par l'agent est memorise dans une variable
$num_cell=$_POST['Liste2'];
$nom_user=$_POST['Liste3'];
$type=$_POST['type'];
$libelle=$_POST['libelle_inter'];
$date_deb=$_POST['date_deb'];
$date_fin=$_POST['date_fin'];
$duree=$_POST['duree'];
}
if ($date_fin >= $date_deb) //Si la date de fin de l'intervention est bien supérieure ou egale a la date de debut, alors la variable correct prend la valeur 1
{
$correct=1;
}
if (isset($_POST['modifier']) && $correct==1 && $_POST['date_fin'] != "0000-00-00")
// Si on clik sur modifier et que la variable correct est egale a 1 (c'est a dire que la date fin est est superieur ou égale a la date debut) et si le champs date_fin est different de sa valeure de départ (c'est a dire qu'il a ete change)
{
$statut="Terminé"; // la variable statut prend donc la valeur termine
include ("tabrecapitulatif.php");// on affiche le tableau récapitulatif
}
elseif (isset($_POST['modifier']) && $_POST['date_deb'] != null && $_POST['date_fin'] == "0000-00-00")
//Si on clik sur modifier, que la date de debut a ete choisi et que la date_fin n'as pas ete changer
{
$statut= "En cours"; //la variable statut prend la valeure "en cours"
$date_fin=""; //la date_fin prend la valeure vide
include ("tabrecapitulatif.php");// on affiche le tableau récapitulatif
}
elseif (isset($_POST['modifier']) && $correct!=1 && $_POST['date_fin'] != "0000-00-00")
//Si on clik sur modofier, et que correct n'est pas egale a 1, (c'est a dire que la date fin est plus petit que la date debut, ce qui est illogique), et que la date fin a bien ete modifier de sa valeure de depart.
{
?>
<?php echo "Erreure de date!!! Recommencez!!" ?>
<!-- message d'erreure -->
<?php
}
?>
<?php
if (isset($_POST['modifier']) && $correct ==1 ) //si on clik sur modifier et que les dates debut et fin, sont correct
{
$typ "SELECT Num_type FROM type WHERE Libelle_type '$type' "; //Requete permettant de retourner le numero du type selectionne par l'agent
$req2 = mysql_query($typ) or die('Erreur SQL! '.$sql.''.mysql_error()); // en cas d'erreure
$data2 = mysql_fetch_assoc($req2); //les resultats de la requete est dans une variable
$num_type = $data2['Num_type']; // Le numero du type est stocke dans une variable
$sql1 "SELECT Num_user FROM user WHERE Nom_user '$nom_user' ";
$req1 = mysql_query($sql1) or die('Erreur SQL! '.$sql1.''.mysql_error()); // en cas d'erreure
$data1 = mysql_fetch_assoc($req1); //les resultats de la requete est dans une variable
}
?>
[consultmesinter.php Retour à mes interventions]
</html>
La page ValideLD1.php:
if ($modif ==1)
{
$libelle = $rep['Libelle_service'];
$num = $rep['Num_service'];
include ("connexionBDD.php");
$rq="Select Num_service, Libelle_service from service order by Libelle_service;";
$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
include ("connexionBDD.php");
$Ld1_retour =''; //id_département clé de la liste déroulante 1
if (isset($_GET['Ld1']))
{
$Ld1_retour = $_GET['Ld1'];
}
if ($Ld1_retour!='')
{
$rq="Select Num_cellule, Libelle_cellule from cellule where Num_service=".$Ld1_retour." order by Libelle_cellule;";
$rq_pos_id=0;
$rq_pos_val=1;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
$retour .= '<option selected value="c la valeure de la liste 2">'; // Elle ne pren pas en conte cette valeur
$retour.= $rep['Libelle_cellule'];
$retour.= '</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 = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled>';
$retour .= '<option selected value="c la valeure de la liste 2">';
$retour.= $rep['Libelle_cellule'];
$retour.= '</option>';
}
mysql_free_result($result);
mysql_close();
}
else
{
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled>';
$retour .= '<option selected value="c la valeure de la liste 2">';
$retour.= $rep['Libelle_cellule'];
$retour.= '</option>';
}
echo $retour;
}
?>
ValideLD3.php :
if ($modif ==1)
{
include ("connexionBDD.php");
$Ld1_retour =''; //id_département clé de la liste déroulante 1
$Ld2_retour =''; //id_commune 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 Nom_user from user, service, cellule
WHERE service.Num_service=cellule.Num_service
AND cellule.Num_cellule=user.Num_cellule
AND service.Num_service=".$Ld1_retour." AND cellule.Num_cellule=".$Ld2_retour." order by Nom_user;";
$rq_pos_id=0;
$rq_pos_val=0;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select style="width: 320" name="Liste3" id="Liste3" size="1" onchange="Affiche_Btn();">';
$retour .= '<option selected value="ca marche">';
$retour.= $rep['Nom_user'];
$retour.= '</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 = '<select style="width: 320" name="Liste3" id="Liste3" size="1" disabled>';
$retour .= '<option selected value="ca marche">';
$retour.= $rep['Nom_user'];
$retour.= '</option>';