Salut tout le monde,
J'ai 4 listes déroulantes.
Les 3 premières se remplissent bien.
La fonction du 4e n'arrive pas à s'exécuter.
Je l'appelle de cette façon :
fnctcategories(document.getElementById('select_Nom_types').value);
Dans ce code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function fnctcours(cours)
{
var xhr2 = getXhr();
xhr2.onreadystatechange = function()
{
if(xhr2.readyState == 4 && (xhr2.status == 200 || xhr2.status == 0 ) )
{
leselect2 = xhr2.responseText;
//alert(leselect2);
document.getElementById('select_Nom_types').innerHTML = leselect2;
//je pense que je dois juste passer la valeur du type car la valeur du mnemonique est déjà connue grâce au $_POST[MNEMONIC] (à vérifier)
//partie liste déroulante Catégorie
fnctcategories(document.getElementById('select_Nom_types').value);
}
}
//partie liste déroulante Types
xhr2.open("POST","Scripts/ajaxTypes.php",true);
xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr2.send("MNEMONIC="+cours);
} |
Le code ci-dessus fonctionne correctement, le statut arrive bien à 200 et l'état à 4, je rentre donc bien dans le if.
La liste déroulante se remplit avec
document.getElementById('select_Nom_types').innerHTML = leselect2;
mais comment je peux vérifier quel problème se pose lors de l'appel de ma fonction fnctcategories ?
Voici quand même le code de ma fonction fnctcategories :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
function fnctcategories(type)
{
alert('le type est ' + type);
var xhr3 = getXhr();
xhr3.onreadystatechange = function()
{
if(xhr3.readyState == 4 && (xhr3.status == 200 || xhr3.status == 0 ) )
{
alert('cool');
leselect3 = xhr3.responseText;
document.getElementById('select_Nom_types').innerHTML = leselect3;
}
}
xhr3.open("POST","Scripts/ajaxCategories.php",true);
xhr3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr3.send("NOM_DU_TYPE="+type);
} |
et le code PHP :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <?php
session_start();
//print_r($_POST);
if(isset($_POST["MNEMONIC"]))
{
$conn = mysql_connect("localhost","root","mdp");
$db=mysql_select_db("pharma", $conn);
$res = "SELECT DISTINCT CATEGORIE FROM inscrits_en WHERE MNEMONIC = '" . $_SESSION[MNEMONIC] . "' AND TYPE_DE_COURS = '" . $_SESSION[TYPE_DE_COURS] . "'";
//il faut faire echo'<script LANGUAGE="JavaScript">alert("'.$res.'")... AVANT mysql_query afin d'afficher la requête sql, une variable de session pourrait ne pas être reconnue, c'est une façon facile de le voir.
echo'<script LANGUAGE="JavaScript">alert("coucou");</SCRIPT>';
$res = mysql_query($res, $conn);
$nombre = mysql_num_rows($res);
while($row = mysql_fetch_assoc($res))
{
echo "<option value='".$row["CATEGORIE"]."'>".$row["CATEGORIE"]."</option>";
}
}
else echo'<script LANGUAGE="JavaScript">alert("pas bon");</SCRIPT>';
?> |
Merci d'avance pour votre aide.
beegees
Partager