3 selects a la suite

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : 3 selects a la suite

par Aureusms » 30 déc. 2008, 00:31

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();')

3 selects a la suite

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