Jump to content

[SOLVED] Strange Class behavior


mikesta707

Recommended Posts

Ok, so i defined a class, like so

function quality(array, tblID, tblHeader){
//the name of the object variable that the class is referenced to.
//needed for explicit calls to class functions.
this.name1;
//Declare the classes variables
this.data = array;
this.header = tblHeader;
//the columns that are numeric. supplied by PHP
this.numericCols;
//HTML elements linked Via ID
this.table = tblID;
this.filter;
this.results;
//Row Deletion Text Boxes
this.delRowID;
this.delRangeID;
//goto row
this.goToRow;
this.poop = "pop";//this does nothing
this.rowStyle="#00FF00";
this.rowCount;
this.query;

this.customFuncs = new Array();

//ajax stuff
this.ajaxGet = ajaxGet;
this.ajaxGetId;



//sort stuff
this.lastsort = 0;
this.lastsort2 = null;
this.reverse = false;

//undo/redo vars
this.oldData = new Array();
this.redoData = new Array();
this.ds = 1;

//percentage variables
this.isPercent = false;
this.percentThreshold; 
this.styleAbove;
this.styleBelow;
this.PercentCol = null;
this.customPercent;

//used to undo highlights
this.lastHighlighted;


//declare the functions
this.setName = setName;
this.fill_table = fill_table;
this.getResults = getResults;
this.removeResults = removeResults;
this.whatDo = whatDo;
this.setFilter = setFilter
this.searchArray = searchArray;
this.searchArrays = searchArrays;
this.regexBuilder = regexBuilder;
this.removeZero = removeZero;
this.compareToColumn = compareToColumn;
this.equalToColumn = equalToColumn;
this.returnData = returnData;
this.gogo = gogo;
this.removeHighlights = removeHighlights;
this.deleteRange = deleteRange;
this.isBetween = isBetween;
this.deleteRow = deleteRow;
this.fetchData = fetchData;
this.setResults = setResults;
this.duplicates = duplicates;

//this.modifier = 1;//this is for numeric sorts. for a specific page, if you want to change the way things sort (IE make them go opposite of what they should
//change this to -1; //no longer used

//the most ridiculous function in the world
//takes custom function and assigns it to an entry point specified
this.setCustomCriteria = setCustomCriteria;

//more undo/redo stuff
this.redo = redo;
this.undo = undo;
this.put = put;
this.redoput = redoput;
//styles!
this.setRowHighlightStyle = setRowHighlightStyle;

}

 

the important part of it is the this.ajaxGet=ajaxGet;

 

I define this function as follows

function ajaxGet(page){
xml = GetXmlHttpObject();
if (xml == null){
	alert("This browser does not support AJAX. You will lose some functionality");
	return;
}
url = page;
url += "?q="+this.query+"&t="+document.getElementById(this.ajaxGetId).value;
//alert(url);
xml.onreadystatechange = function() {
	if (xml.readyState==4){
		//alert(xml.responseText);
		this.data = xml.responseText;
		//alert(this.data);
		this.fill_table();		}
}
xml.open("GET", url, true);
xml.send(null);
}

 

the problem is i get an error that sais this.fill_table() isn't a function. I use the same exact call in many other places in the class, and everything is fine. for example, here

function undo() {
	this.redoput(this.data);
	this.data = this.oldData[this.oldData.length-1];
	this.oldData.splice(this.oldData.length-1,1);
	if (this.oldData.length < 1){
		document.getElementById("undo").disabled=true;
	}
	this.fill_table();
}

 

but in the ajaxGet() function, it doesn't work. That function is able to access the other class data members perfectly fine though. I just don't understand whats happening. Anyone have a clue?

Link to comment
https://forums.phpfreaks.com/topic/177586-solved-strange-class-behavior/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.