Login   Register  
PHP Classes
elePHPant
Icontem

File: jsrs-adr-php/adrForm.js

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of yo keller  >  metaForm  >  jsrs-adr-php/adrForm.js  >  Download  
File: jsrs-adr-php/adrForm.js
Role: Auxiliary data
Content type: text/plain
Description: js script library
Class: metaForm
Generate and validate forms from XML definitions
Author: By
Last change:
Date: 2005-03-15 13:17
Size: 4,782 bytes
 

Contents

Class file image Download
/*******************************

adrForm.js
	-doProcessText	generic -- with the exception of curparams[1]
	-doUpdateField	generic -- with the exception of curparams[1]
	-doValidate	specific to the form/database association
	-clk		generic
	-setId		generic
	-setFormField	generic
	-fillForm	generic


*******************************/
// global vars
//var jsrsTrace = true;	// sets vs. resets a trace -- set in jsrsClient.js
var activeFld = '';
var activeForm = '';
// activated by onkeyup
function doProcessText(form,fld){

	var curparams = new Array();		// buildSearchQry args:
	curparams[0] = form.elements[fld].value;	// baseTerm
	curparams[1] = 'adresse';		// table
	curparams[2] = fld;			// field
	curparams[3] = form.elements['id'].value;	// id
	if (jsrsTrace) 
		alert('doProcessText: '+form.name+'--'+fld+'--'+form.elements[fld].value+'-- id:'+curparams[3]);
	activeFld = fld;
	activeForm = form;
	jsrsExecute( 'adr-form-process.php', fillForm, 'buildSearchQry', curparams, '');


} // end doProcessText

function doUpdateField(form,fld){

	var curparams = new Array();		// buildSearchQry args:
	curparams[0] = form.elements[fld].value;	// baseTerm
	curparams[1] = 'adresse';		// table
	curparams[2] = fld;			// field
	curparams[3] = form.elements['id'].value;	// id
	if (jsrsTrace) 
		alert('doUpdateField: '+form.name+'--'+fld+'--'+form.elements[fld].value+'-- id:'+curparams[3]);
	activeFld = fld;
	activeForm = form;
	jsrsExecute( 'adr-form-process.php', setFormField, 'incrDbRecord', curparams, '');


} // end doUpdateField

function doValidate(form){
	var args = new Array();		// buildSearchQry args:
	var val = new Array();
	var str_args;
	var str_val;
	var curparams = new Array();
	var i=0;
	args[i] = 'id';	// baseTerm
	args[i++] = 'table';		// 'adresse'
	// liste de tous les champs pour les m-a-j, sauf 'id' (voir adr-form.xml)
	//args[i++] = 'tble';		// table
	args[i++] = 'aux_designations';
	args[i++] = 'numero';
	args[i++] = 'lieu_dit';
	args[i++] = 'rue';
	args[i++] = 'commune';
	args[i++] = 'code';
	args[i++] = 'departement';
	args[i++] = 'pays';
	args[i++] = 'type_lieu';
	str_args = args.join('~');

	activeForm = form;
	val[0] = activeForm.elements['id'].value;
	val[1] = 'adresse';
	for(i=2; i< args.length;i++){
		var xobj = activeForm.elements[args[i]];
		if (xobj == undefined){
			val[i] = '';
			continue;
		}
		var x = xobj.value;
		val[i] = (x == undefined)?'':x;
	}
	str_val = val.join('~');
	curparams[0] = activeForm.elements['id'].value;
	curparams[1] = str_args;
	curparams[2] = str_val;
	if (jsrsTrace) 
		alert('exec doValidate:'+str_val);
	
	jsrsExecute( 'adr-form-process.php', setId, 'db_record', curparams, '');

} // end doValidate()

// callback invoked upon iframe being loaded ...
// each sql returned row is being imploded by join( $row, '~')
// all the rows are separated by "|"

function clk(form,fld, s){
	form.elements[fld].value = s;
	sel = form.elements['aux_saisie'];
	psel = sel.parentNode;
	psel.removeChild(sel);
	doUpdateField(form,fld);
} // clk

function setId(sqlQryReturnStr){
	if (jsrsTrace)alert('setId:'+sqlQryReturnStr);
	activeForm.elements['id'].value = sqlQryReturnStr;
	sel = activeForm.elements['id'];
	psel = sel.parentNode;
	div2 = psel.getElementsByTagName("div")[0];
	if (div2 != undefined)
		psel.removeChild(div2);
	div2 = document.createElement("div");
	div2.innerHTML = sqlQryReturnStr;
	psel.appendChild(div2);
	
} // setId

function setFormField(sqlQryReturnStr){
	if (jsrsTrace)
		alert('setFormField:'+sqlQryReturnStr);
	var params = sqlQryReturnStr.split('|');
	activeForm.elements[params[0]].value = params[1];
} // setFormField


function fillForm( sqlQryReturnStr ){
	if (jsrsTrace) alert('fillForm:');
	if (sqlQryReturnStr.length == 0)return;
	var aOptions = sqlQryReturnStr.split('|');	//sqlQryReturnStr.split('|');
	aOptions.sort();
	for(i=aOptions.length-1; i>0 ;i--){
		if (aOptions[i].length == 0)aOptions.splice(i,1);
		if (aOptions[i-1] == aOptions[i])aOptions.splice(i-1,1);
	}
	
	var opts = '<select name="aux_saisie" size="5" maxlength="70">\n';
	for(i=0; i< aOptions.length;i++){
		opts = opts+ '<option value="'+i+'" onclick="clk(this.form,\''+activeFld+'\', \''+aOptions[i]+'\')">'+aOptions[i]+'\n';
		//opts = opts+ '<option value="'+i+'" >'+aOptions[i]+'\n';
	}
	opts = opts+ '</select>\n';
	if (jsrsTrace) alert(opts);
	saux = activeForm.elements['aux_saisie'];
	if (saux != undefined)saux.parentNode.removeChild(saux);
	sel = document.createElement("span");
	sel.innerHTML = opts;
	active_el = activeForm.elements[activeFld];
	td_el = active_el.parentNode;
	td_el.insertBefore(sel,active_el);
	
} // end fillForm