copier mes listes déroulantes (Technologie Ajax)

shakanet

Nouveau membre
Bonjour. J'ai 2 fichiers .php ---> index.php et liresc.php (ci-dessous) et une base MySQL. Ces 2 fichiers me permettent de créer une liste déroulante et de la remplir grâce aux données présentes dans ma base. De plus une 2ème liste déroulante est crée et dépend de ma 1ère liste. Exemple : Dans ma 1ère liste je clique sur l'activité "Informatique", et dans la 2ème liste s'affiche les métiers liés à cette activité : "Administrateur réseau" / "Commercial informatique" / "Vendeur informatique" . Je voudrai que 2 autres listes déroulantes apparaissent à côté de mes 2 premières. (pour que vous puissiez m'aider on dira que ces listes seront identiques aux 2 premières). J'ai tenté des "copier / coller" tout simplement, malheureusement ça ne doit pas marcher comme ça ... Merci de m'aider. Attention, merci de bien détailler vos réponses car j'ai encore un peu de mal avec la programmation...

Voici mes 2 fichiers (entiers) :


index.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else

//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");

XhrObj.open("POST", page);

//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}


if (XhrObj.readyState == 4 && XhrObj.status == 200) {
content._innerhtml = XhrObj.responseText ;
alert(XhrObj.responseText);
}


XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData

</script>
</head>
<body>

<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="ma_base";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database);

// Séléction de tous les enregistrements de la table activite
$rq="Select * from activite;";
$result= mysql_query ($rq) or die ("Select impossible");
echo "<form method='POST' action='valid.php'>";


?> <select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">

<?php


while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégories
echo "<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>
</select>

<br><br>
<div id="contenu">


<?php
// affichage des sous-catégorie appartenant à la première catégorie.
echo "<select size='1' name='souscat'>";
$rq="Select * metier where metier.nummetier=client.nummetier And client.numact=activite.numact=".$j." order by nommetier;";
$result= mysql_query ($rq) or die ("Select impossible");

// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option>";
}
echo "</select>";

?>

</div>
</form>

<p>&nbsp;</p>

<br><br>



liresc.php

<?php
header('Content-type: plain/text') ; // on déclare ce qui va être afficher

// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$user="root";
$host="localhost";
$password="";
$database="ma_base";
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database);
$rq="SELECT *
FROM `metier` , `client` , `activite`
WHERE `metier`.nummetier = `client`.fk_id_nummetier
AND `client`.fk_id_numact = `activite`.numact
AND `activite`.numact=".$_POST['id']." order by nommetier;";
$res= mysql_query ($rq) or die ("Select impossible");


// $i = initialise le variable i
$i=0;

if (mysql_num_rows($res)>0)
{
echo "<select size='1' name='souscat'>";
}
else
{
echo utf8_encode("Pas de sous catégories disponible");
}
while ($dt=mysql_fetch_row($res))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option>";
}
echo "</select>";

}


?>
 

Johan_et_Pirlouit

Grand Maître
Sympa les couleurs........ Mail il y a meilleur pour afficher le code : la balise
Code:
 (bouton [img]http://img.presence-pc.com/forum/icones/message/c.gif[/img]).. Alors tu édites ton premier post (bouton [img]http://img.presence-pc.com/forum/themes_static/images_forum/1/edit.gif[/img]) et tu corriges..

Au passage, l'aide du forum te donneras nombre d'infos quant à l'utilisation des fonctions du forum..

:jap:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 070
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut