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] Mettre à Jour une boucle


Sujet :

AJAX

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut [AJAX] Mettre à Jour une boucle
    Bonjour à tous

    Petite question je dispose d'une boucle while dans une page php qui fait me sort l'ensemble des numéros de série enregistrés

    j'ai donc une liste, j'aimerai que cette boucle soit mis à jour sans reload de la page.

    Cette liste me sert de comparaison avec des produits qui sont scannés
    si le produit est présent j'afifche OK sinon je propose l'ajout.

    c'est à ce moment la quand on clique sur le bouton ajouter qu'il y a l'enregistrement en bdd et j'aimerai que la liste d'origine soit mise à jour !

    mon code php de la boucle :

    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
    	while ($array4 = mssql_fetch_assoc($query4)) {
     
     
    		$num_serie2 = $array4['num_serie'];
    	            $id_ligne2 = $array4['id_ligne'];
     
    	$query04 = mssql_query("SELECT num_serie
    				FROM psh_stock_ligne
    				WHERE id_ligne ='$id_ligne2'");
     
    	while ($array04 = mssql_fetch_assoc($query04)) {
    								            $num_seriie = $array04['num_serie'];
    										}
     
    echo '<table><tr>';
    echo "<td><input type='hidden' id='num_seriie' name='num_seriie' value='$num_seriie'</td>";
    echo "<td><input type='hidden' id='ligne_stock' name='ligne_stock' value='$id_ligne2'</td>";
    echo "<td><a href='traitement_bons_stock2.php?action=sup_ligne_stock_recep&ligne_stock=$id_ligne2&num_seriie=$num_seriie&id_bons=$id_bons'>Supprimer</a></td>";
    echo "<td><input type='text' name='num_serie' value='$num_serie2'>";
    echo '</td></tr></table>';
    		}

    et la fonction sur le onclick du bouton ajouter

    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
     
     
    					function(){
    						var nb_ligne_num_serie = $("tab_num_serie").rows.length;
    						var pompe = '';
    							var num_serie = $("pompe"+span).value;
     
    							   if(window.XMLHttpRequest)
                   						xhr = new XMLHttpRequest();
                					else if(window.ActiveXObject){
                   						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;
    	           						 }
     
    									xhr.open('GET',"traitement_bons_stock2.php?action=ajouter_numserie&num_serie="+num_serie+"&id_bons="+id_bons,true);
    									xhr.send(null);
    							}
    						}
    								$("span"+span).appendChild(btn_ajt);
    								ajout_champs_nums($("nb_ligne_num_serie").value,0);
     
    						}

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    euh... et? ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    J'ai un peu avancé peut être pas été clair dans mon message

    j'essaye donc de mettre à jour une boucle enfin d'actualiser en direct une liste de numéro de série

    voici mon nouveau 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
    24
    25
    26
    27
    28
    29
    30
     
     
    					$query3 = mssql_query("SELECT * from psh_stock_ligne WHERE id_bons='$id_bons'");
     
    					//recuperation des numeros de series dans un tableau pour le traitement des statuts
     
    					$rows=mssql_num_rows($query3);
    					$chaine ="";
    					$tab_numserie = array();
     
    					while ($array3 = mssql_fetch_assoc($query3)) {
     
    						$id_ligne = $array3['id_ligne'];
    						array_push($tab_numserie, $array3['num_serie']);
    						$chaine = $chaine."/".$array3['num_serie'];
    					}
     
    					echo "<input type='hidden' name='tabnums' value='$chaine'>";
     
    					//boucle pour afficher les resultats de la base et les delete
     
     
    			echo "<span id='numero_de_serie'>";
     
    				for ($i = 0; $i < sizeof($tab_numserie); $i ++) {
     
    						echo "<input type='text' name='num_serie' value='$tab_numserie[$i]'><br>";
     
    				}
    			echo "</span>";
    je place ma boucle for dans un span

    et maintenant dans ma fonction :

    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
    					function(){
    						var nb_ligne_num_serie = $("tab_num_serie").rows.length;
    						var pompe = '';
    							var num_serie = $("pompe"+span).value;
     
    							   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;
    	           						 }
     
    									xhr.open('GET',"traitement_bons_stock2.php?action=ajouter_numserie&num_serie="+num_serie+"&id_bons="+id_bons,true);
    									xhr.send(null);
    									document.getElementById('numero_de_serie').innerHTML="test";
    							}
    						}
    								$("span"+span).appendChild(btn_ajt);
    								ajout_champs_nums($("nb_ligne_num_serie").value,0);
     
     
     
    						}
    j'essaye de mettre à jour le contenu du span !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('numero_de_serie').innerHTML="test";
    quand je fait ça et que je clique sur le bouton ajouter ça me charge bien test au lieu de la précédente liste

    donc il faut que j'adapte maintenant en récupérant les bonnes données de mes requêtes.

    et je galère un peu

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    Hop,

    Voila après mettre bien cassé la tête j'ai finis par obtenir le résultat voulu
    je poste donc la solution

    Pour mettre à jour une boucle php, ou un for j'ai utilisé innerHTML

    J'ai placé le contenu de ma boucle dans un <span> avec une id.

    Coté fonction j'ai initialisé une requête pour aller récupérer les infos dont j'avais besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object = new XMLHttpRequest(); ...
    Une fois récupérées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('nom_de_id_span').innerHTML = xhr_object.responseText;
    Je remplace par le résultat de la requête.

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Nick_Rivers Voir le message
    Pour mettre à jour une boucle php, ou un for
    une boucle est une notion algorithmique. Ce n'est donc pas une boucle que tu mets à jour, mais une liste d'éléments de ta page
    Citation Envoyé par Nick_Rivers Voir le message
    j'ai utilisé innerHTML
    Tant que ce n'est pas à l'intérieur d'un formulaire, il ne devrait pas y avoir de problème.
    Sinon (et dans tous les cas pour un code plus "propre"), il faut utiliser les instructions DOM

    A+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Par défaut
    Oui pour les DOM j'ai vu ça

    J'ai fait au plus rapide

    Pour le fait d'avoir cité boucle ou for c'est pour facilité la recherche
    mais il s'agit bien de notion algorithmique

    Donc la mise à jour des éléments que retourne la boucle

    on est d'accord

    Merci pour le lien

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

Discussions similaires

  1. [Dojo] AJAX/PHP Mettre à jour une div avec un contenu TabContainer
    Par chotana dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 04/09/2012, 13h46
  2. [ZF 1.10] Ajax : Mettre à jour une div de index.phtml
    Par arsene555 dans le forum Zend Framework
    Réponses: 5
    Dernier message: 26/11/2010, 11h53
  3. Réponses: 1
    Dernier message: 10/02/2009, 08h36
  4. Réponses: 4
    Dernier message: 26/01/2009, 14h56
  5. Réponses: 3
    Dernier message: 05/07/2008, 19h09

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