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] Rafraichissement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut [AJAX] Rafraichissement
    Salut,


    Je suis en train de faire requêteur pour personnes ne connaissant absolument pas le SQL, et mon but est de faire quelque chose de très interactif et rapide donc je me suis tourné avec Ajax.

    J'ai un premier formulaire, qui m'affiche le nom des toutes les relations de ma BD MySQL, avec un checkbox pour dire si cette relation fait partie de la requete ou pas.

    Lorsque l'utilisateur coche le checkbox, alors un formulaire se charge dynamiquement sous le premier, listant les attributs des relations sélectionés, avec un checkbox pour chaque attributs. Lorsque je sélectionne un attributs, je fais afficher dynamiquement pour le moment la valeur de $_post dans la page de traitement et j'obtiens ce que je souhaite.

    Le problème apparait lorsque je clique sur une nouvelle relation, alors que j'avais commencé à sélectionner des attributs, le second formulaire se recharge correctement mais lorsque je coche un attribut n'importe lequel, c'est toujours l'ancienne valeur du post qui est conservée ...


    Je ne vois vraiment pas d'où ca peut venir ?


    Ci-joint mon code 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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    // Recupération des Tables sélectionnées
    function getTableCheck(){
    	var i = 0;
    	var j = 0;
    	var str = "";
    	while( selTbl.ckTbl[i] ){
    		if(selTbl.ckTbl[i].checked){
    			str = str + "tblChk[" + j + "]=" + selTbl.ckTbl[i].value + "&";
    			j++;
    		}
    		i++;
    	}
    	return str;
    }
     
    // Recupération des attributs sélectionnés
    function getAttrCheck(){
    	var i = 0;
    	var j = 0;
    	var str = "";
    	var oldTable = "";
     
    	while( tblForm.attribut[i] ){
    		if(tblForm.attribut[i].checked){
    			tmp = tblForm.attribut[i].value.split('.');
     
    			if( oldTable == tmp[0] ){
    				j++;
    			}
    			else{
    				oldTable = tmp[0];
    				j = 0;
    			}
     
    			str += tmp[0] + "[" + j + "]=" + tmp[1] + "&";
    			//alert( str );
    		}
    		i++;
    	}
     
    	return str;
    }
     
    // Génération premier formulaire
    function refreshForm(){
     
    	var req = null;
     
     
    	document.getElementById( 'formTbl' ).innerHTML = "<div align='center'><br/>Chargement en cours ... <br/> <img src='./images/progressBar.gif' alt='' /></div>";
    	document.getElementById( 'result' ).innerHTML = "";
     
     
    	if(window.XMLHttpRequest){
    		req = new XMLHttpRequest();
    	}
    	else if ( window.ActiveXObject ) {
    		req  = new ActiveXObject( 'Microsoft.XMLHTTP' );
    	}
    	else{
    		alert("Votre navigateur n'est pas compatible avec cette page.");
    		return;
    	}
     
    	req.open("POST", "./modules/requeteurInfoTbl.php", true);
     
    	req.onreadystatechange = function(){
    		if(req.readyState == 4){
    			if(req.status == 200){
    				document.getElementById( 'formTbl' ).innerHTML= req.responseText;
    			}
    			else{
    				document.getElementById( 'formTbl' ).innerHTML="Error: returned status code " + req.status + " " + req.statusText;
    			}
    		}
    	};
     
    	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	var str = getTableCheck();
    	req.send(str);
    }
     
     
    // Génération requete
    function genereReq(){
     
    	var req = null;
     
    	document.getElementById( 'result' ).innerHTML = "<div align='center'><br/>Chargement en cours ... <br/> <img src='./images/progressBar.gif' alt='' /></div>";
     
     
    	if(window.XMLHttpRequest){
    		req = new XMLHttpRequest();
    	}
    	else if ( window.ActiveXObject ) {
    		req  = new ActiveXObject( 'Microsoft.XMLHTTP' );
    	}
    	else{
    		alert("Votre navigateur n'est pas compatible avec cette page.");
    		return;
    	}
     
    	req.open("POST", "./modules/requeteurGenere.php", true);
     
    	req.onreadystatechange = function(){
    		if(req.readyState == 4){
    			if(req.status == 200){
    				document.getElementById( 'result' ).innerHTML= req.responseText;
    			}
    			else{
    				document.getElementById( 'result' ).innerHTML="Error: returned status code " + req.status + " " + req.statusText;
    			}
    		}
    	};
     
    	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	var str = getAttrCheck();
    	req.send(str);
    }
    Merci d'avance ...

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    résolu ! Le repas porte conseil.

    Il ne fait pas faire générer les balises <form .. /form> dynamiquement

  3. #3
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    Et puis la derniere version de phpMyAdmin fait aussi ca de maniere tres simple et interactive...

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

Discussions similaires

  1. [AJAX] - Rafraichissement d'un DIV avec setTimeOut
    Par Seb06 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2011, 00h07
  2. [AJAX] Rafraichissement d'un fichier texte inclu dans une page
    Par gforce dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/01/2007, 11h41
  3. [AJAX] rafraichissement d'un Div en Ajax
    Par Azanael dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/05/2006, 15h06
  4. [AJAX] Rafraichissement des données sur la page
    Par TreizeSegments dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 18h32
  5. ajax,rafraichissement avec une liste deroulante
    Par klimero dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/04/2006, 09h41

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