Bonjour,
je verrais bien un truc comme cela pour définir les filtres ainsi que
les colonnes ?
C'est juste un début de maquette, hein! il y a encore un "peu" de
boulot mais vous en dites quoi ?
ensuite je ne connais pas smarty ni adodb donc il faut que je m'y mette aussi.
De meme si quelqu'un a déjà creusé le sujet ou qui veut m'aider, il ne
doit pas hésiter ;-)
et, je n'ai pas testé sous IE, ça marche bien sous firefox et konqueror.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title>filtre</title>
<style type="text/css">
.hidden {
display: none;
}
.visible {
display: inline;
}
</style>
<script type="text/javascript">
fields=new Array();
fields[0]="nom";
fields[1]="prenom";
fields[2]="Age";
fields[3]="Ville";
fields[4]='...';
operator= new Array();
operator[0]="=";
operator[1]="<";
operator[2]=">";
operator[3]="<>";
operator[4]="LIKE";
function addCol(orig,dest)
{
dest[dest.length]=orig[orig.selectedIndex];
}
function delCol(orig,dest)
{
orig[orig.length]=dest[dest.selectedIndex];
}
function upCol()
{
alert('AddCol');
}
function downCol()
{
alert('AddCol');
}
function dropClause(NbClause) {
document.getElementsByName('numberOfClause')[0].value=NbClause-1;
document.getElementById('ListClause').removeChild(document.getElementById("ListClause").lastChild);
}
function addClause(NbClause) {
document.getElementsByName('numberOfClause')[0].value=NbClause;
var newlist = document.createElement('li');
var newobject = document.createElement('select');
newobject.name='select'+NbClause;
var newOpt;
for(var i=0;i<fields.length;i++) {
newOpt=document.createElement('option');
newOpt.text=fields[i];
newOpt.value=fields[i]+'v';
newobject.options[i]=newOpt;
}
newlist.appendChild(newobject);
var newobject = document.createElement('select');
newobject.name='operator'+NbClause;
for(var i=0;i<fields.length;i++) {
newOpt=document.createElement('option');
newOpt.text=operator[i];
newOpt.value=operator[i]+'v';
newobject.options[i]=newOpt;
}
newlist.appendChild(newobject);
var newinput = document.createElement('input');
newinput.setAttribute('name','operande'+NbClause);
newinput.setAttribute('type','SELECT');
newlist.appendChild(newinput);
document.getElementById('ListClause').appendChild(newlist);
}
function hide(identifiant) {
if (document.getElementById(identifiant).className == "hidden") {
document.getElementById(identifiant).className = "visible";
} else {
document.getElementById(identifiant).className = "hidden";
}
}
</script>
</head>
<body>
<form name='clauseform' action="http://toto" method="post"
enctype="text/plain">
<input type="button" id='FILTERS' value="Filtres" onClick="hide('A')"> <br/>
<fieldset id='A' name="Clause" class='hidden'>
<input type=text" Id='numberOfClause' name="numberOfClause" value="0"><br/>
<input type="text" name="where" value="where">
<ul id="ListClause">
</ul>
<input type="button" id='ADD' value="add" onClick="addClause(new
Number(document.getElementById('numberOfClause').value)+1)">
<input type="button" id='DROP' value="drop" onClick="dropClause(new
Number(document.getElementById('numberOfClause').value))">
</fieldset>
<br/>
<input type="button" id='COLUMNS' value="Colonnes" onClick="hide('B')"> <br/>
<fieldset id='B' name="Colonne" class='hidden'>
<select name='COLUMNSOURCE' Id='COLSOURCE' size=5>
<option value='ADR.NOM'> Nom</option>
<option value='ADR.NOM'> Prenom </option>
<option value='ADR.NOM'> Ville </option>
<option value='current_date - ADR.DATEDENAISSANCE'> Age </option>
<option value='ADR.NOM'> ... </option>
</select>
<input type="button" id='ADDCOL' value="add"
onClick="addCol(document.getElementById('COLSOURCE'),
document.getElementById('COLDEST'))">
<input type="button" id='DROPCOL' value="drop"
onClick="delCol(document.getElementById('COLSOURCE'),
document.getElementById('COLDEST'))">
<select name='COLDEST' Id='COLDEST' size=5>
</select>
</fieldset>
</form>
<script>
addClause(0);
</script>
</body>
</html>