[Javascript] Ajax + Classe

Ajax + Classe [Javascript] - HTML/CSS - Programmation

Marsh Posté le 04-07-2014 à 20:58:28    

Salut,
Dans un fichier .js je crée une classe contenant plusieurs méthodes dont:
changeDir et analyseResponse
 
Le méthode changeDir fait une requête ajax dont la réponse est traitée dans la méthode analyseResponse. Le problème c'est que mes variables this.objID, this.api et leur amies ne sont pas définies dans la méthode analyseResponse.
 
Je n'ai aucune idée de comment résoudre le problème... un petit coup de main svp ?
 
***** Début code source *****
 
function treeManager(objID, initialPath) {
 this.objID = objID;
 this.curDir = "";
 this.api = undefined;
 this.initPath = initialPath;
        this.request;
 
 this.analyseResponse = function (response, textStatus, jqXHR){
  var html = '<div class="menuItem" onclick=\'changeDir(".." )\'>Parent Directory</div>';
  var itemList = response.split("@@" );
  itemList = itemList.sort(function(a,b){
   a = a.toLowerCase();
   b = b.toLowerCase();
 
   if( a > b )
   return 1;
  if( a < b )
   return -1;
 
  return 0;
  });
 
  for(var idx in itemList) {
   if( itemList[idx] != "" )
                  html += '<div class="menuItem" onclick=\'changeDir("' + itemList[idx] + '" )\'>' + itemList[idx] + '</div>';
  }
 
  if( this.api != undefined ) {
   this.api.destroy();
  }
  $('#' + this.objID).html(html);
  this.api = $('#' + this.objID).jScrollPane().data('jsp');
 }
 
 this.changeDir = function(path) {
  this.request = $.ajax({
   url: "/cgi-bin/test.pl",
    type: "post",
    data: "path="+this.curDir+"/"+path,
    success: this.analyseResponse,
  });
 
  if( this.curDir != "" ) {
   this.curDir += "/";
  }
 
  this.curDir += path;
  console.log(this.curDir);
 }
 
 this.init = function() {
  $('#' + this.objID).css('top', $('#header').height());
  this.changeDir(this.initPath);
 }
 
}
 
***** Fin code source *****

Reply

Marsh Posté le 04-07-2014 à 20:58:28   

Reply

Marsh Posté le 05-07-2014 à 13:21:06    

Finalement j'ai trouvé il faut ajouter un contexte à la requête ajax....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed