Я успешно использовал этот пример фильтра CQL. Тем не менее, я хотел развить его дальше, и первая цель — позволить пользователю выбирать, какой слой фильтровать. Для этого я добавил еще одно поле в html-форму, где перечислены все доступные слои. Теперь вопрос: как использовать эту строку в качестве переменной в функции фильтра CQL? Мой код выглядит так:
function updateFilter() {
var cql = document.getElementById("cql");
// use a CQL parser for easy filter Validation
var format = new OpenLayers.Format.CQL();
//if filter exists, remove it
//This will also be useful when empty filter is present
if(Layer_to_Query.params.CQL_FILTER){
delete Layer_to_Query.params.CQL_FILTER;
}
var filter;
try {
filter = format.read(cql.value); //we are just checking if we can parse it
} catch (err) {
if(cql.value!=""){ //no need to give alert when filter is empty
alert("Filter cannot parsed");
}
}
if (filter) {
Layer_to_Query.mergeNewParams({'CQL_FILTER':cql.value}) //add the cql filter to the Layer
}
//redraw the layer
Layer_to_Query.redraw({force:true});
return false;
}
Итак, есть идеи о том, как передать имя слоя формы как Layer_to_Query в функцию? Заранее спасибо!