Bonjour � tous,

Voici mon probl�me:

J'ai repris le tutoriel InlineMod disponible sur le site. Apr�s de nombreuses modifications et quelques simplifications, j'arrive bien � modifier le contenu du tableau dynamiquement ( lors du double-clique sur une cellule : champ -> cr�ation de l'input -> transfert vers champ.value ).

Or, la requ�te SQL ne s'effectue pas lorsque l'�dition de la cellule est termin�e. Voici les fonctions de mon fichier inlinemod.js (je vous montre celles qui nous int�ressent ) :

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
 
	function inlineMod(id,obj,nomChamp,classe){
		if(editionEnCours){
			return false;
		}else{
			editionEnCours=true;
			sauve=false;
		}
 
		champ=eval('new '+classe+'();');
		champ.valeur=obj.innerText ? obj.innerText : obj.textContent;
		champ.id=id;
		champ.nomChamp=nomChamp;
 
		champ.remplacerTexte(obj,sauverMod());
		champ.activerChamp();
	}
 
	function sauverMod(){
 
		xhr.onreadystatechange=function(){
			if(xhr.readyState == 400){
 
				if(!xhr.reponseText){
					editionEnCours = false;
					champ.terminerEdition();
					document.getElementById("erreur").innerHTML="";
					return true;
				}else{
										sauve=false;
					return false;
				}
			}
		}
	}
	Texte.prototype.remplacerTexte=function(parent,sauvegarde){
		if(!parent || sauvegarde){
			return false;
		}else{
			this.parent=parent;
		}
 
		input=document.createElement('input');
		input.value=this.valeur;
		input.style.width=getTextWidth(this.valeur)+10+"px";
		input.setAttribute('method', 'GET');
		input.onblur=function(){
			sauverMod();
			champ.terminerEdition();
		}
 
		input.onkeydown=function keyDown(event){
			if(window.event.keyCode==13){
				sauverMod();
				champ.terminerEdition();
			}
		};
		champ.terminerEdition();
		parent.replaceChild(input,parent.firstChild);
	}
 
	}
	Texte.prototype.terminerEdition=function(){
		this.parent.replaceChild(document.createTextNode(input.value), this.parent.firstChild);
 
 
		var querystring = "?champ=" + champ.nomChamp + "&valeur=" + champ.getValeur() + "&echap=" + champ.echapperValeur() + "&id=" + champ.id + ieTrick() ;
		xhr.open("GET" , "sauverMod2.php" + querystring , true);
		xhr.send(null);	
 
		delete input;
		editionEnCours=false;
		sauve=false;
	}
et voici sauverMod2.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
 
$con=mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("bootx",$con);
 
$champ=$_GET["champ"];
$valeur=$_GET["valeur"];
$id=$_GET["id"];
$sql="UPDATE clients SET ".$champ." = `".$valeur."` WHERE clients.id = ".$id;
mysql_query($sql,$con);
mysql_close($con);
 
?>
J'ai d�j� vu pas mal de tutoriel l�-dessus, mais � chaque fois l'input �tait d�j� initialis� dans la page index.php (dont l'attribut method �tait aussi pr�cis�e). Le probl�me vient peut-�tre du fait que l'input est cr�� dynamiquement... j'ai d�j� test� avec la methode "post" et avec d'autres syntaxes plus simples pour la requ�te SQL.

(Je pr�cise que le code javascript n'a visiblement aucun probl�me)

Merci � vous.