par
rag » 26 déc. 2008, 15:16
bonjour, j ai un petit souci;
j ai beqoin de 3 selects a la suite, j en ai deux qui fonctionnent et le troisieme ne veut pas.
je ne trouve pas pourquoi.
pourtant j ai la meme structure pour les trois fonctions.
bref, dans la fonction JS du deuxieme select, la procedure s'arrete au niveau indiqué, mais je ne comprend pas pourquoi.
pouvez vous m aider?
merci
eric
index.php
Code : Tout sélectionner
<html>
<head>
<title>test ajax</title>
<script src="../test/test.js" type="text/javascript" LANGUAGE="JavaScript"></script>
</head>
<body>
<select name='touche_a_tout' id='touche_a_tout' onchange='fonction_select_touche_a_tout()'>
<option value=0>0</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
<div id='professionnel' style='display:inline'></div>
<div id='specialiste' style='display:inline'></div>
</body>
</html>
fonction test.js
function requette_ajax()
{
var xhr = null;
if(window.XMLHttpRequest) {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;
}
//*********************************************************************************
//*********************************************************************************
//*********************************************************************************
function fonction_select_touche_a_tout()
{
var xhr = requette_ajax();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById('professionnel').innerHTML = xhr.responseText;
//alert(value);
}
}
xhr.open("POST","ihm_select_professionnel.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById('touche_a_tout');
val_touche_a_tout = sel.options[sel.selectedIndex].value;
xhr.send("val_touche_a_tout="+val_touche_a_tout);
alert(val_touche_a_tout);
}
function fonction_select_professionnel()
{
var xhr = requette_ajax();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById('specialiste').innerHTML = xhr.responseText;
//alert();
}
}
xhr.open("POST","ihm_select_specialiste.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById('professionnel');
//alert(val_professionnel = sel.options[sel.selectedIndex].value;
alert();
xhr.send("val_professionnel="+val_professionnel);
alert(val_professionnel);
}
fichier ihm_select_professionnel.php
<?php
if(isset($_POST["val_touche_a_tout"]) && $_POST["val_touche_a_tout"]==3)
{
echo "<select name='professionnel' id='professionnel' onchange='fonction_select_professionnel()'>";
echo "<option value=0>0</option>";
echo "<option value=1>1</option>";
echo "<option value=2>2</option>";
echo "<option value=3>3</option>";
echo "<option value=4>4</option>";
echo "</select>";
}
?>
ihm_select_specialiste.php
<?php
if(isset($_POST["val_professionnel"]) && $_POST["val_professionnel"]==4)
{
echo "<select name='specialiste' id='specialiste' onchange='ihm_select_specialiste()'>";
echo "<option value=0>0</option>";
echo "<option value=1>1</option>";
echo "<option value=2>2</option>";
echo "<option value=3>3</option>";
echo "<option value=4>4</option>";
echo "<option value=5>5</option>";
echo "</select>";
}
?>
merci, les amis
eric