IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Comment savoir ce qui empêche l'ouverture d'une fonction ?


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [AJAX] Comment savoir ce qui empêche l'ouverture d'une fonction ?
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			fnctcategories(document.getElementById('select_Nom_types').value);
    Dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			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 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Quand je vois ton code PHP, je vois que tu écris des balises Option mais pas de balise Select

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/01/2016, 12h10
  2. [AJAX] comment savoir si send à fonctionné correctement?
    Par peldaine dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/09/2007, 11h46
  3. [AJAX] Comment savoir quand l'action est terminée
    Par tatayecorp dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/08/2007, 21h28
  4. [AJAX] Comment savoir si on fait de l'AJAX ?
    Par DavidDeTroyes dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 01/12/2006, 18h00
  5. [CSS] Comment savoir ce qui est faisable?
    Par cladsam dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 07/02/2006, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo