Bonjour, après avoir cherché sur le forum, je ne trouve pas de réponse à mon problème.
J'ai trois tables:
medecin: num_medecin, nom_medecin, ville_medecin
livreur: num_livreur, ville_medecin, num_grossiste
grossiste: num_grossiste, nom_grossiste
Je souhaiterai que lorsqu'on choisit un médecin, on obtient les livreurs ayant la même ville que le médecin sélectionné.
J'ai réussi à le faire.
Mais je voudrais ensuite, après avoir obtenus le livreur, il m'affiche le nom du grossiste associé (relié par le num_grossiste).
Voici mes codes:
demande2.php
ajaxLivreur.php
ajaxGrossiste.php
Merci de votre aide!
Modifié par maxoup (29 Apr 2011 - 14:30)
J'ai trois tables:
medecin: num_medecin, nom_medecin, ville_medecin
livreur: num_livreur, ville_medecin, num_grossiste
grossiste: num_grossiste, nom_grossiste
Je souhaiterai que lorsqu'on choisit un médecin, on obtient les livreurs ayant la même ville que le médecin sélectionné.
J'ai réussi à le faire.
Mais je voudrais ensuite, après avoir obtenus le livreur, il m'affiche le nom du grossiste associé (relié par le num_grossiste).
Voici mes codes:
demande2.php
<html>
<?php
include ("./inclusion/fonction_connect.inc");
?>
<script type='text/javascript'>
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...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go_med()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
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)
{
leselect = xhr.responseText;
// leselect = 3;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('livreur').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxLivreur.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du medecin
sel = document.getElementById('medecin');
idauteur = sel.options[sel.selectedIndex].value;
xhr.send("idAuteur="+idauteur);
}
function go_livre()
{
var xhr2 = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr2.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr2.readyState == 4 && xhr2.status == 200)
{
leselect = xhr2.responseText;
// leselect = 3;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('grossiste').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr2.open("POST","ajaxGrossiste.php",true);
// ne pas oublier ça pour le post
xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du medecin
sel = document.getElementById('livreur');
idlivre = sel.options[sel.selectedIndex].value;
xhr2.send("idLivreur="+idlivre);
}
</script>
</head>
<body>
<form name="frm" action="./enr_demande2.php" method="POST">
<label>Médecin</label>
<select name='medecin' id='medecin' onchange='go_med()'>
<option value='-1'>Aucun</option>
<?
$connect=connect();
$sql1="SELECT * FROM medecin ORDER BY nom_med ";
$rs1=mysql_query($sql1 , $connect);
while($row = mysql_fetch_assoc($rs1))
{
echo "<option value='".$row["num_med"]."'>".$row["nom_med"]. "</option>";
}
?>
</select><br>
<label>Test livrés par/où :</label>
<div id='livreur' style='display:inline'>
<select name='livreur' id='livreur' onchange='go_livre()' >
<option value='-1'>Choisir un médecin d'abord</option>
<?
$connect=connect();
$sql1="SELECT * FROM livreur ORDER BY nom_livreur ";
$rs1=mysql_query($sql1 , $connect);
while($row = mysql_fetch_assoc($rs1))
{
echo "<option value='".$row["num_livreur"]."'>".$row["nom_livreur"]. "</option>";
}
?>
</select>
</div><br>
<label>Grossiste :</label>
<div id='grossiste' style='display:inline'>
<select name='grossiste'>
<option value='-1'>Choisir un médecin d'abord</option>
</select>
</div><br>
<input type="submit" value="Valider" style="width: 100px"></body>
</form>
</html>
ajaxLivreur.php
<?php
echo "<select name='livreur'>";
$idmed=$_POST["idAuteur"];
if(isset($idmed)){
mysql_connect("localhost","root","root");
mysql_select_db("stage");
$ville = mysql_query("SELECT ville_med FROM medecin WHERE num_med=".$idmed." ORDER BY nom_med");
$ville = mysql_fetch_object($ville);
$ville = $ville->ville_med;
$res = mysql_query('SELECT * FROM livreur WHERE ville_livreur="'.$ville.'" ORDER BY nom_livreur');
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["num_livreur"]."'>".$row["nom_livreur"]."</option>";
}
}
echo "</select>";
?>
ajaxGrossiste.php
<?php
echo "<select name='grossiste'>";
$idlivreur=$_POST["idLivreur"];
if(isset($idlivreur)){
mysql_connect("localhost","root","root");
mysql_select_db("stage");
$ville = mysql_query("SELECT num_livreur FROM livreur WHERE num_livreur=".$idlivreur." ORDER BY nom_livreur");
$ville = mysql_fetch_object($ville);
$ville = $ville->num_livreur;
$res = mysql_query('SELECT * FROM grossiste WHERE num_grossiste="'.$ville.'" ORDER BY nom_grossiste');
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["num_grossiste"]."'>".$row["nom_grossiste"]."</option>";
}
}
echo "</select>";
?>
Merci de votre aide!
Modifié par maxoup (29 Apr 2011 - 14:30)