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] Recuperer la reponse avec POST


Sujet :

AJAX

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut [AJAX] Recuperer la reponse avec POST
    Bonsoir,

    J'ai recuperé ce bout de code sur le net et je l'ai adapté à mon besoin. Il faut reconnaitre c'est ma 1ere fois de parler de AJAX.

    Executant ce code, il m'affiche tout le code php et non le message désiré.


    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
    32
    33
    function getXhr(){
    			var xhr = null;
    			if(window.XMLHttpRequest) // Firefox et autres
    				xhr = new XMLHttpRequest();
    			else if(window.ActiveXObject){ // Internet Explorer
    				try {
    						xhr = new ActiveXObject("Msxml2.XMLHTTP");
    					} 
    				catch (e) {
    						xhr = new ActiveXObject("Microsoft.XMLHTTP");
    					}
    			}
    			else { 
    				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    				xhr = false;
    			}
    			return xhr
    		}
     
    		function go(ip){
    			if(ip !=""){
     
    				var xhr = getXhr()
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						document.ordi_enr.dysfon.value = xhr.responseText;
    					}
    				}
    				xhr.open("POST","load_dysfon.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				xhr.send(null);
    			}else { document.ordi_enr.dysfon.value = "";}
    		}
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?
    	echo "Tout marche";
    ?>
    Merci de votre aide.

  2. #2
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    	echo "Tout marche";
    ?>

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Citation Envoyé par sebhm Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    	echo "Tout marche";
    ?>
    Merci sebhm, c'est une erreur de ma part. Même après modification de l'erreur et après modification du message de l'instruction php echo, c'est l'ancien message qui s'affiche. Je voudrais dire ceci

    J'ai modifié le fichier php pour juste texter, et voici le nouveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
            echo "Juste pour texter";
    ?>
    J'ai recharge la page pour être sur du résultat du test, mais j'ai toujours l'ancien message à savoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    	echo "Tout marche";
    ?>

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Merci, je ne repere sur les tutos.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Bonjour,

    Actuellement ca marche sans problème. Autre chose j'utilise smarty. Mais j'ai un nouveau problème: c'est pour selectionner mes données de la base de données à partir d'un critère.

    Je vous donne le smarty

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    {literal}
    	<script language='javascript'>
    function add_tache(){
    			var valeur = this.ordi_enr.lst_tache.options[this.ordi_enr.lst_tache.selectedIndex].value;
    			var texte = this.ordi_enr.lst_tache.options[this.ordi_enr.lst_tache.selectedIndex].text;
    			document.forms.ordi_enr.tache_eff.options[document.forms.ordi_enr.tache_eff.options.length] = new Option(texte,valeur);
    			this.ordi_enr.lst_tache.options[this.ordi_enr.lst_tache.selectedIndex] = null;			
    		}	
     
    		function drop_tache(){
    			var valeur = this.ordi_enr.tache_eff.options[this.ordi_enr.tache_eff.selectedIndex].value;
    			var texte = this.ordi_enr.tache_eff.options[this.ordi_enr.tache_eff.selectedIndex].text;
    			document.forms.ordi_enr.lst_tache.options[document.forms.ordi_enr.lst_tache.options.length] = new Option(texte,valeur);
    			this.ordi_enr.tache_eff.options[this.ordi_enr.tache_eff.selectedIndex] = null;
    		}
     
    		function getXhr(){
    			var xhr = null;
    			if(window.XMLHttpRequest) 
    				xhr = new XMLHttpRequest();
    			else if(window.ActiveXObject){ 
    				try {
    						xhr = new ActiveXObject("Msxml2.XMLHTTP");
    					} catch (e) {
    						xhr = new ActiveXObject("Microsoft.XMLHTTP");
    					}
    			}
    			else { 
    				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    				xhr = false;
    			}
    			return xhr
    		}
     
    		function go(ip){
    			if(ip != ""){
    				var val_ip = document.getElementById('ip_ordi').value;
    				var xhr = getXhr()
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						document.ordi_enr.dysfon.value = xhr.responseText;
    				}
    			}
    			xhr.open("POST","load_dysfon.php",true);
    			var data = escape(document.getElementById('ip_ordi').value);
    			xhr.send(data);
    		}else { document.ordi_enr.dysfon.value = "";}
    		}
     
    	</script>
    {/literal}
    <form name="ordi_enr" action="inter_ajout.php" method="post" onsubmit="return verif_form();">
    					<fieldset><legend><h4><span class="style1"><em>Intervention</em></span></h4></legend>
    						<p align="center"><label for="ip_ordi">IP : </label>
    							<select name="ip_ordi" onchange="go(this.value)">
    								<option value=""></option>
    								{section name=idx loop=$liste_ip}
    									<option value="{$liste_ip[idx].ip_ordin}">{$liste_ip[idx].ip_ordin}</option>
    								{/section}
    							</select>
     
    						<label for="dysfon">Dysfonctionnement:</label>
    						<textarea name="dysfon" cols="60" readonly="true"></textarea></p>	
     
    						<p align="center"><label for="lst_tache">Liste des tâche(s):</label>
    						<select name="lst_tache" size="5" style="width:255px" onchange="add_tache();">
    							{section name=idx loop=$lst_tache}
    								<option value="{$lst_tache[idx].num_tach}">{$lst_tache[idx].lb_tache}</option>
    							{/section}
    						</select>
     
    						<label for="tache_eff">Tâche(s) effectuée(s):</label>
    						<select name="tache_eff" size="5" style="width:255px" onchange="drop_tache();">
     
    						</select></p>
     
    					</fieldset>
    					<p align="center">
    					  <input name="submit" type="submit" value="Enregistrer infos." />
    					</p>
    				</form>
    Le contenu de load_dysfon.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
            header("Cache-Control: no-cache, must-revalidate");
            header('Content-type: text/html; charset=iso-8859-1'); 
            require_once('config.inc.php');
            
            $select_dysf = mysql_query("SELECT num_dysf,ip_ordin,dte_jour,dysfo_or FROM tb_dysfon WHERE ip_ordin'".$_POST['data']."'");
            while ($row = mysql_fetch_row($select_dysf))
            {
                    echo $row[3]; 
            }       
    ?>
    En vérifiant la valeur de $_POST['data'], il est vide.

    Je vous remercie de toutes votre aide

  6. #6
    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,
    var data = escape(document.getElementById('ip_ordi').value);
    xhr.send(data);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var data = "data="+escape(document.getElementById('ip_ordi').value);
    			xhr.send(data);

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Bonjour

    En faissant ceci

    en js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xhr.open("POST","load_dysfon.php",true);
    			var data = "data="+escape(document.getElementById('ip_ordi').value);
    			xhr.send(data);
    et ceci en php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
            header("Cache-Control: no-cache, must-revalidate");
            header('Content-type: text/html; charset=iso-8859-1'); 
            require_once('config.inc.php');
            
            echo $_POST['data'];
            
            //$select_dysf = mysql_query("SELECT num_dysf,ip_ordin,dte_jour,dysfo_or FROM tb_dysfon ");
            //while ($row = mysql_fetch_row($select_dysf))
            //{
                    //echo $row[3]; 
            //}     
    ?>
    Juste pour voir la valeur de data, le résultat est le vide.

    Merci

  8. #8
    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
    Mince, tu as oublié une ligne pour la méthoe POST.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xhr.open("POST","load_dysfon.php",true);
    			var data = "data="+document.getElementById('ip_ordi').value;
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send(data);

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Mince, tu as oublié une ligne pour la méthoe POST.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xhr.open("POST","load_dysfon.php",true);
    			var data = "data="+document.getElementById('ip_ordi').value;
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send(data);
    Merci andry.aime pour tant de peine à assister des développeurs débutants.

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

Discussions similaires

  1. Recuperer une variable avec la fonction $.ajax
    Par CraPu!e dans le forum jQuery
    Réponses: 2
    Dernier message: 25/05/2010, 12h45
  2. Réponses: 3
    Dernier message: 17/07/2009, 18h06
  3. [AJAX][IE 6] impossible de recuperer le focus avec la souris
    Par magnus2005 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/03/2009, 11h59
  4. [AJAX] fonction de reponse avec argument, readystate reste à 1
    Par CrocodileMan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/05/2007, 08h30
  5. [AJAX] include une page avec une reponse xajax
    Par tirzite dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/05/2007, 18h11

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