Page 1 sur 1

3 selects a la suite

Posté : 26 déc. 2008, 15:16
par rag
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

Posté : 30 déc. 2008, 00:31
par Aureusms
Il est vrai que je ne vois pas d'erreur.
As tu essayé sous FF? Moi je l'utilise avec le module firebug pour trouver ce genre de bug pas facile à trouver. Ainsi tu pourra voir si le problème vient du côté serveur (PHP) ou du côté client. On est bien d'accord que dans le deuxième select tu choisis l'option 4 ? (au fait mets un ; à la fin des onchange='fonction_prof();')