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] interface boucle retour fonction Ajax dans code Php


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut [AJAX] interface boucle retour fonction Ajax dans code Php
    Bonjour

    Je suis nouveau dans ajax , et c'est la première que j'utilise pour faire un petite application.

    l'interface consiste à shipper (au moyen d'une douchette ) un numero dans un champs texte .
    la deuxième etape consiste à ecrire dans un fichier texte chaque valeur lue au moyen de la douchette( la forcement la page se raffraichit), l'ecriture (ca fonctionne sans faut via une requette ajax)
    la troisièmme étape consiste à lire les valeurs existant dans le fichier texte et via une seconde requette ajax tester le resultat , en fonction de celui ci j'ajouterai une ligne de tableau avec un message dedans .
    Mon problème est que malgrés que je n'ai aucun retour d'erreur dans le script , le tableau ne s affiche pas avec toute les valeurs entrées (et qui sont enregistrées dans le fichier texte). ..er des moment j'ai une ligne qui apparait..Bref il foit y avoir un Bug quelques part ( qui concerne probablement le coté asynchrone d'ajax).

    Je vous expose en bas mon script en ésperant avoir un Piste ou une proposition ...


    <HTML>
    <head>
    <script type="text/javascript" src="XHRConnection.js"></script>
    <style type="text/css">
    <!--

    .libele {
    position: absolute;
    top: 7em;
    left: 20%;
    }
    -->
    </style>
    Code javascript : 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
     
    <script type='text/javascript'>
    function ecrire(saisie){
     
    				var XHRt = new XHRConnection();
     
    			// On crée une variable pour stocker le contenu de la zone de saisie
    			XHRt.appendData("texte", document.getElementById('Saisie').value);
    			// On soumet la requête
    			// Signification des paramères:			
    			// 	+ On indique à l'objet qu'il faut appeler le fichier fwrite.php
    			// 	+ On utilise la méthode POST, adaptée l'envoi d'information
    			// 	+ On indique quelle fonction appeler lorsque l'opération a été effectuée
    			XHRt.sendAndLoad("fwrite.php", "POST");
    }
    				function go(saisie){
    				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 { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
    				// On défini ce qu'on va faire quand on aura la réponse
     
    					xhr.open("POST","updatercv.php",true);
    					xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    //alert(document.forms['form_pointage'].elements['saisie'].value);
     
    var newRow = document.getElementById('tablist').insertRow(-1);
    var newCell = newRow.insertCell(0);
     
    //saisie=document.getElementById('saisie').value;
     
    newCell.innerHTML =saisie;
     
    //if (! newCell.innerHTML==''){
                  newCell = newRow.insertCell(1);
                  if(parseInt(xhr.responseText)==2){
    							 newCell.style.backgroundColor="red";
    							 newCell.innerHTML ="Non effectue";
    							 document.getElementById('saisie').value='';
    						  }
                  if(parseInt(xhr.responseText)==1){
    							 newCell.style.backgroundColor="green";
    							 newCell.innerHTML ="OK";      
                   document.getElementById('saisie').value='';                            
                  }	
    //			   	}
     
       }        			   	//	 
                 //document.getElementById('saisie').readonly=0;
     }
    				// Ici on va voir comment faire du post
     
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    				// ici, l'id du client
    			 // saisie= document.getElementById('saisie');
    				xhr.send("rcv_no="+saisie.value);	
     
    			}
    </script>
    Code HTML : 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
     
    </head>
    <body onload="document.forms['form_pointage'].elements['saisie'].focus();">
    <div class ="libele">
     Pointage des BL
    <P>
    <FORM  name="form_pointage"  method=post action="" onsubmit="ecrire(document.forms['form_pointage'].elements['saisie'].value);" enctype="multipart/form-data">
    <input id="saisie" type='text' />
    <br>
    <br>
    <p> Numero de Bl Lues :
    </div>
    <table  style="width:40%; position: absolute;top: 15em;border-color : red;left=20%" id="tablist"  name="tablist"  border='1'>
      <tr >
            <th style="width:50%">rcvno 
              </th >
            <th style="width:50%">etat 
              </th>
      </tr>
    </table>
     
    </FORM>
     
    </body>
    </HTML>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <?php
    $fichier="fichier.txt"; 
    $tab=file($fichier);
    $ligne=count($tab); 
    echo $ligne;
    for($i=0;$i<$ligne;$i++){
    $valeur_tab=str_replace("\n", "", $tab[$i]);
    echo '<script>go('.$valeur_tab.')</script>';
     
    }
    ?>

    Merci de me donner un Coup de main la dessus.

    Amicalement

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonsoir


    j'ai Pu Remedier à Mon probleme d'affichage de tous les résultats ..en changeant xhr.open("POST","updatercv.php",true); par
    xhr.open("POST","updatercv.php",false);

    Il me parait d'apres mes recherche que dans ce cas on travaille pas en mode Asynchrone (c'est à dire ne pas attendre jusqu'a obtenir la reponse)..
    J'ai bien l'affichage des toutes mes valeur dans le tableau par contre de délai d'affichage est énorme, et chaque fois qu'une nouvelle valeur est entrée (chippée) , le page se raffraichit (doanlowd) et du coup la boucle doit s 'excuter encore une fois et le temps d'execution est ralentie ...

    Auriez une autre manière de procéder , de manière à réduire le temps d'execution..

    Amicalement

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Re ReBonsoir

    Bon, j'ai résolue le problème :

    pour Ceux qui sont interessés :

    http://www.developpez.net/forums/d69...ynchrone-ajax/



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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2011, 11h23
  2. appeler fonction javascript dans code ASP
    Par skunkies dans le forum ASP
    Réponses: 10
    Dernier message: 18/12/2009, 16h12
  3. [AJAX] [XAJAX] Lancer une fonction JS dans une fonction AJAX
    Par sixieme-sens dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/12/2008, 15h26
  4. [AJAX] Appel d'une fonction javascript dans une page chargée en ajax
    Par baedal dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 17/04/2008, 17h03
  5. cgi/javascript : appeler fonction javascript dans code cgi, need help!
    Par Mr.ux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/12/2007, 07h33

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