[AJAX] InlineMod - Ajax - Requ�tes PHP-MySQL
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:
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:
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.