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

AJAX Discussion :

[AJAX] script ajax basique qui n'est pas executé


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut [AJAX] script ajax basique qui n'est pas executé
    Bonjour, j'ai un formulaire qui, normalement, devrait faire ceci : on a un select avec les régions de france, avec le onchange, sa affiche une autre liste déroulante avec les departement correspondants . mais voilà, mon script est super super simple et je ne comprends pas pourquoi il ne marche pas
    D'autant plus que je fais la meme action dans le meme formulaire avec un autre champ select qui lui marche très bien .

    ajax :
    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
    function region(quelle)
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{if (xhr.readyState == 1) 
    			{
    			document.getElementById("depart").innerHTML="1<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 2) 
    			{
    			document.getElementById("depart").innerHTML="2<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 3) 
    			{
    			document.getElementById("depart").innerHTML="3<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>";
    			}
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("depart").innerHTML=xhr.responseText;
    			}
    		};
     
     	var requete="reg="+quelle;
    	xhr.open("POST", "composants/inscription/departement.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
    html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ceci est une partie du tableau d'un formulaire antre des balises <form></form>
    <tr><th>Département *</th><td><div id="depart"></div></td></tr>

    composants/inscription/departement.php :
    Code php : 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
    <?php
    include '../../php/function.php';
    if (isset($_POST['reg']))
    	{
    	db_connect();
    	$reg=$_POST['reg'];
    	$query=mysql_query("SELECT * FROM departement WHERE id_region='$reg'");
    	?>
    	<select name="departement" id="departement" onChange="dept();"><option value="">D&eacute;partement</option>
    	<?php
    	while ($dep=mysql_fetch_array($query))
    		{
    		?>
    		<option value="<?php echo $dep['id']; ?>"><?php echo htmlentities($dep['departement']); ?></option>
    		<?php
    		}
    		?>
    	</select>
    	<?php
    	}
    ?>

    la liste déroulante est appelée dans le formulaire par un include dont voici le fichier inclus :
    Code php : 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
    <?php
    db_connect();
    $query=mysql_query("SELECT * FROM region");
    	?>
    	<div>
    	<select name="region" id="region" onChange="region(this.value);"><option value="">Région</option>
    	<?php
    	while ($r=mysql_fetch_array($query))
    		{
    		?>
    		<option value="<?php echo $r['id']; ?>"><?php echo $r['region']; ?></option>
    		<?php
    		}
    	?>
    	</select>
    	</div>

    la liste déroulante des régions s'affiche bien, mais le onchange ne marche pas
    je précise que les fonctions sont dans un fichier qui se nomme ,ajax.js qui est bien appelé dans le head du fichier parent .
    Le formulaire est dans un fichier inclus dans le fichier parent et est dans une fonction

    Aucun ready state n'est retourné, ni 1, ni 2, ni 3, ni 4 ...

    Merci pour votre aide précieuse par avance .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    as-tu au moins fait les vérifications de base, qui consistent à mettre :
    - des echo ... (php)
    - des alert(...); (javascript)
    pour voir si les variables sont bien transmises, et à quel endroit ça ne fonctionne plus ?

    Au passage, tu peux simplifier l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	xhr.onreadystatechange = function() 
    	{
    		if (xhr.readyState == 4 && xhr.status == 200) 
    		{
    			document.getElementById("depart").innerHTML = xhr.responseText;
    		} else {
    			document.getElementById("depart").innerHTML = xhr.readyState + '<span align="center"><img src="composants/inscription/loader.gif" style="width:32px;height:32px;" alt="" /></span>';
    		}
    	};

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    Meri beaucoup d'avoir regardé, mais j'ai cherché, trifouillé mon code, et me suis apperçu qu'en enlevant les includes dans les fichiers appelés en ajax, sa marche :s bizarre ...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    et oui biensure avant de poster j'avais fait ces verifs merci encore tout de meme .

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cuisto44000 Voir le message
    ...en enlevant les includes dans les fichiers appelés en ajax, sa marche :s bizarre ...
    Pas bizarre si le chemin d'accès est faux (entrainant un message d'erreur, qui n'est pas affiché, puisque "ajax"...)
    Il faut tester le fichier "à part" (en direct).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Par défaut
    je sais bien, sauf que le chemin je l'ai modifié et modifié et re modifié et rien a faire sa ne dépassait pas le stade des readystates 3 donc bizarre ...

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Il se peut que tu as une erreur serveur
    Essaie avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (xhr.readyState == 4){ 
    	if(xhr.status == 200 || xhr.status == 0){
    			document.getElementById("depart").innerHTML = xhr.responseText;
    	}else{
    		document.getElementById("depart").innerHTML = "Code d'erreur: " + xhr.status; ;
    	}
    }else {
    		document.getElementById("depart").innerHTML = xhr.readyState + '<span align="center"><img src="composants/inscription/loader.gif" style="width:32px;height:32px;" alt="" /></span>';
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] chargement page HTML qui ne marche pas (?)
    Par troussepoil dans le forum AJAX
    Réponses: 5
    Dernier message: 27/05/2009, 10h32
  2. Réponses: 8
    Dernier message: 14/05/2009, 22h54
  3. Réponses: 7
    Dernier message: 28/04/2009, 15h45
  4. [AJAX] script ajax qui fonctionne pas tout le temps
    Par krfa1 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/05/2007, 11h12
  5. [AJAX] Script ajax ne fonctionne pas sur IE :( !
    Par Funattitude dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2006, 18h02

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