没有postgresql, 对于系统的整个设想是无法完成的.

通过一个查询, 对于 树状的路径整个一次查询

用js 将它显示出来.

function picklistchange(){
	_select = $(this);
	_hidden_id = _select.attr('hidden-id');
	_un = _select.attr('un');

	//Remove all the subsequent 
	_select.nextAll().remove();
	_lovtree = _select.data('lovtree');
	_rowvalue = _select.data('rowvalue');

	//This is value of Current Select
	_selected = _select.find(':selected');
	if(_selected.attr('is_leaf')=="{DB::T}"){
		$("#"+_hidden_id).val(_select.val());
		_select.after("<img src='/s.gif' class='successimg'/>");
	}else{
		_val = _select.val();
		_k = _selected.attr('k');

		//Getting Children list
		if(_lovtree.c[_k].c == undefined){
			return false;
		}
		_c_lovtree =  _lovtree.c[_k];

		_c_select = $('<SELECT>').data('lovtree',_c_lovtree).
			data('rowvalue',_rowvalue).
			attr('hidden-id',_hidden_id).attr('un',_un).
			attr('name',_un+'_'+_k);
		$("<OPTION>").append("{__('L_Select')}").appendTo(_c_select);
		//Building the option list
		for(var _kid in _c_lovtree.c){
			_lov = _c_lovtree.c[_kid]['lov'];
			$("<OPTION>").val(_lov.lov_id).append(_lov.v).attr('k',_lov.id).attr('is_leaf',_lov.is_leaf).appendTo(_c_select);
			//Insert after
			_select.after(_c_select);
			//Onchange
		}
		_c_select.change(picklistchange);

		if(_rowvalue){
			_c_select.find("[value="+_rowvalue[_k]+"]").attr("selected","selected");
			_c_select.change();
		}
	}
}

你可能感兴趣的:(没有postgresql, 对于系统的整个设想是无法完成的.)