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] utilisation de xmlhttprequest


Sujet :

AJAX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut [AJAX] utilisation de xmlhttprequest
    Bonjour à tous,

    voilà je vous expose mon problème:
    j'ai une page php sur laquelle j'ai 2 listes déroulantes liées à une base de données.
    Et lorsque je sélectionne dans ma 1ère, je voudrais que ma seconde se rafraichisse (ie modifier la requête qui rempli cette liste déroulante).
    J'ai donc mis un évènement onchange sur ma 1ère liste qui lance une fonction javascript afin de me renvoyer sa valeur (selected) pour que je puis modifier la requête sur la seconde liste.

    en parcourant les forum, j'ai vu qu'on pouvait utiliser xmlhttprequest et sa propriété send pour récupérer une valeur en php, mais malheureusement, c là que je bloque, je ne reçoit rien .

    voici ma fonction javascript:

    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
    function test(param){ 
    	var xhr_object = null;
    	var data = null;
     
    	//initialisation de l'objet XMLHttpRequest 
    	if(window.XMLHttpRequest) // Firefox
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // Internet Explorer
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else { // XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		return;
    	}
     
    	xhr_object.open("POST", "index.php?c=maintenances&ac=ajouter", true);
     
    	//pour la methode POST
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    	data = "vincent";	  	
    	xhr_object.send(data); 
    }
    et dans mon php, je fais (j'ai sorti de mon form le test pour recevoir la valeur javascript au cas où):

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <form class="form_detail" method="post" action="index.php?c='.$this->className.'&ac=ajouter">
          		<fieldset>
          			<legend>Informations</legend>
    						<dl>
          				<dt><label for="intitule">Intitulé</label><sup>*</sup> :</dt>
          				  <dd><input type="text" class="txtLbl oblig" name="maintenances[lbl]" id="lbl" value="'.$maintenances['lbl'].'" /></dd>
    							<dt><label for="t_eqpts_id">Type d&acute;&eacute;quipement</label> :</dt>
    								<dd><select name="maintenances[t_eqpts_id]" onchange="test(this.value);">';
    								  $listeT_Eqpts = $this->tableT_Eqpts->listeTout("lbl", null,0);
    									echo '<option value=null>< non renseigné ></option>';
    									foreach ($listeT_Eqpts as $t_eqpts){
    									  echo '<option ';
    									  if($maintenances['t_eqpts_id'] == $t_eqpts['id']){echo 'selected ';};
    										echo ' value="'.$t_eqpts['id'].'">'.$t_eqpts['lbl'].'</option>';
    									}
    							echo '</select></dd>';
    							echo '<dt><label for="etats_id">Etat</label><sup>*</sup> :</dt>
    							  <dd><select name="maintenances[etats_id]" class="oblig">';
    								  $listeEtats = $this->tableEtats->listeTout("lbl", null,0);
    									foreach ($listeEtats as $etats){
    									  echo '<option ';
    									  if($maintenances['etats_id'] == $etats['id']){echo 'selected ';};
    										echo ' value="'.$etats['id'].'">'.$etats['lbl'].'</option>';
    									}
    							  echo '</select></dd>
    								</dl>
          		</fieldset> 				
    					<input type="hidden" name="maintenances[desactive]" value="0"/>					
          		<button type="submit" name="ajouter"><img src="images/fichier_ajouter.png" alt=""/>Ajouter</button>
          	</form>
    if(isset($_POST['cmd'])){
      echo $_POST['cmd'];
    }
    else 
      echo 'erreur';

    je me demande si mon code est correct car ça m'écrit toujours "erreur" au lieu de mon $_POST?
    (j'ai un petit doute sur le fait que je sois déjà sur la page que j'utilise dans mon xhr_object.open ne fausse pas mon code ??)

    voilà, si quelqu'un à un avis à m'apporter, je suis preneur
    (désolé s'il y a trop de blabla, mais une fois parti ... )

  2. #2
    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
    Bonjour,
    Je n'ai pas eu le temps de lire ton code jusqu'au bout mais déjà 2 erreurs:
    1-
    data = "vincent";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = "nomVariable=vincent";
    2- tu ne récupères pas le résultat de la requête Ajax.

    Je te conseille de lire ce tutoriel : Listes liées

    A+.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    autant pour moi pour les erreurs, vu que g voulu faire des changements, je n'ai pas remis le bon code
    par contre j'ai lu le tuto que tu m'as mis en lien, qui est en passant très bien.
    Mais, et oui ce fameux mais qui fâche lol, donc mais je vois sur le tuto que l'on fais appel un un autre fichier php, ne peux t'on pas faire tout sur le php d'origine avec les 2 select ??

  4. #4
    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
    Bonjour,
    tu peux le mettre au début du fichier et mettre un die() à la fin des instructions voulues.
    Mais bon, facilites les choses pour débuter.

    A+.

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

Discussions similaires

  1. [AJAX] Utilisation XMLHTTPRequest
    Par Daviloppeur dans le forum AJAX
    Réponses: 16
    Dernier message: 24/09/2009, 16h01
  2. [AJAX] Utilisation de XMLHTTPREQUEST
    Par Daviloppeur dans le forum AJAX
    Réponses: 3
    Dernier message: 31/08/2009, 11h43
  3. [AJAX] Utilisation XMLHttpRequest
    Par DJERO77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/08/2007, 10h27
  4. [AJAX] utilisation de abort dans xmlHttprequest
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/02/2007, 14h56
  5. [PHP] Utilisation de XmlHttpRequest
    Par siddh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 17/11/2005, 07h47

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