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>

_______________________________________________
Galette-devel mailing list
Galette-devel@gna.org
https://mail.gna.org/listinfo/galette-devel

Répondre à