Donc quand tu dis "il ne fait pas le rafraichissement de l'affichage", je me demande si ce n'est pas plutôt l'ancienne valeur qui est remise à cause d'une mauvaise réponse du PHP.
Merci Louis, oui c'est exactement ca, faut dire que j'ai quand meme fait un violent copier/coller de l'exemple, mais que j'ai pas encore compris comment mon PHP doit dire à javascript que la reponse est OK.
ce qui change dans le code javascript de demo.js (copier/coller de l'exemple)
// register the function that will handle model changesmodelChanged=function(rowIndex,columnIndex,oldValue,newValue,row){displayMessage("Value for '"+this.getColumnName(columnIndex)+"' in row "+this.getRowId(rowIndex)+" has changed from '"+oldValue+"' to '"+newValue+"'");if(this.getColumnName(columnIndex)=="continent")this.setValueAt(rowIndex,this.getColumnIndex("country"),"");// if we changed the continent, reset the countrythis.renderCharts();};
DEVIENT ==>>
// register the function that will handle model changesmodelChanged=function(rowIndex,columnIndex,oldValue,newValue,row){// --- Start of modification to add ajax mysql script$.ajax({url:"update_grid_cell.php",type:'POST',dataType:"text",data:{id:editableGrid.getRowId(rowIndex),column:columnIndex,value:newValue},success:function(response){// reset old value if failedif(response!="ok")editableGrid.setValueAt(rowIndex,columnIndex,oldValue);// here you could also highlight the updated row to give the user some feedback},error:function(XMLHttpRequest,textStatus,exception){alert(XMLHttpRequest.responseText);}});//--- end of modificationdisplayMessage("Value for '"+this.getColumnName(columnIndex)+"' in row "+this.getRowId(rowIndex)+" has changed from '"+oldValue+"' to '"+newValue+"'");if(this.getColumnName(columnIndex)=="continent")this.setValueAt(rowIndex,this.getColumnIndex("country"),"");// if we changed the continent, reset the countrythis.renderCharts();};
et mon code PHP est le suivant :
// le code au dessus prepare une requete de mise à jour avec les données precedemment transmise, et je teste le retour de la requete pour tenter de transmettre une info à javascript$res=$bdd->exec($req);if($res === FALSE){die('erreur dans la requete');}else if($res === 0){ return "nok";}else{ return "ok";}
peut-etre faut-il que je mette du code javascript dans mon php pour modifier la variable "response" qui sera utilisée dans demo.js ?
ah, et une autre remarque, qui peut etre une piste d'amelioration, c'est dommage de devoir coder les colonnes en dur dans le javascript alors qu'il pourrait le lire depuis le xml
ex : je ne veux pas des colonnes age/height dans mon site,
je ne les mets pas dans le xml
mais je dois modifier le javascript pour ne plus avoir d'erreur
alors qu'on devrait pouvoir parser le xml pour calculer les colonnes et les valeurs des champs par defaut (liste de reponse)
[^] # Re: ca m'interesse mais avec mysql
Posté par NeoX . En réponse à la dépêche EditableGrid, des nouvelles du projet. Évalué à 3. Dernière modification le 25 avril 2012 à 10:35.
Merci Louis, oui c'est exactement ca, faut dire que j'ai quand meme fait un violent copier/coller de l'exemple, mais que j'ai pas encore compris comment mon PHP doit dire à javascript que la reponse est OK.
ce qui change dans le code javascript de demo.js (copier/coller de l'exemple)
DEVIENT ==>>
et mon code PHP est le suivant :
peut-etre faut-il que je mette du code javascript dans mon php pour modifier la variable "response" qui sera utilisée dans demo.js ?
ah, et une autre remarque, qui peut etre une piste d'amelioration, c'est dommage de devoir coder les colonnes en dur dans le javascript alors qu'il pourrait le lire depuis le xml
ex : je ne veux pas des colonnes age/height dans mon site,
je ne les mets pas dans le xml
mais je dois modifier le javascript pour ne plus avoir d'erreur
alors qu'on devrait pouvoir parser le xml pour calculer les colonnes et les valeurs des champs par defaut (liste de reponse)