我有關於從一個字符串傳遞Ext.formPanel文本框的代碼的另一部分一個問題。問題是,我在formPanel中有兩個「textfield」,我希望我輸入的詞作爲代碼中「url」的一部分。可能你可能會問,爲什麼這個人想要那個?這是因爲我使用的「url」有一個PHP腳本,它可以生成存儲在postgis數據庫表中的特性,如GeoJSON。傳遞字符串「文本框」到另一部分的代碼
此代碼:
[CODE]
// define the data source
var protocol = new OpenLayers.Protocol.HTTP({
url: "http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom¶meters=" + "column" + ilike '%"string"%',
format: new OpenLayers.Format.GeoJSON({
ignoreExtraDims: true,
'internalProjection': new OpenLayers.Projection("EPSG:900913"),
'externalProjection': new OpenLayers.Projection("EPSG:4326")
})
});
formPanel = new GeoExt.form.FormPanel({
title: "Place Name Search",
height: 150,
region: "north",
protocol: protocol,
items: [{
xtype: "textfield",
id: "column",
emptyText: "Choose table column",
fieldLabel: "Choose table column",
width: 200,
allowBlank: false
}, {
xtype: "textfield",
id: "string",
emptyText: "Search inside table",
fieldLabel: "Enter a word to search",
width: 200,
allowBlank: false
}],
listeners: {
actioncomplete: function(form, action) {
features = action.response.features;
store.loadData(features);
vm=map.getLayersByName("Results");
if(vm.length===0){
vecLayer = new OpenLayers.Layer.Vector("Results");
map.addLayer(vecLayer);
store.bind(vecLayer);
select.bind(vecLayer);
}
}
},
buttons: [{text: 'search',
handler: function(){
formPanel.search();
}
}],
keys: [{ key: [Ext.EventObject.ENTER],
handler: function() {
formPanel.search();
}
}]
});
[/CODE]
這是我已經測試的情況:
- 網址:
http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom
:這會產生全表 「boreholes_point_wgs84」 作爲GeoJSON的。 - 網址:
http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom¶meters=station ilike '%llena%'
:這僅生成一個特徵,即具有「LLENA」,在「站」列中的特徵。所以,通過這種方式,我可以通過搜索表單找到該功能。
我當時的想法是,如果我可以通過這兩個字符串我在「文本框」中輸入和修改的方式,「URL」,它可以捕捉這兩個詞和形式,例如,第二種情況我放在上面。我玩這個:
網址:http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom¶meters=" + "column" + ilike '%"string"%'
,因此,使用我的每個的xtype以下指定的「ID」,但它不工作。
我明白任何支持這一點,在此先感謝,
最好的問候,
格里
感謝您的答案,我使用這個,因爲通過聽衆我得到的信息來繪製Openlayers中的功能,順便說一句,我忘了提及這與Openlayers一起,對不起,我要修改標籤。 – Gery
看到我上面的編輯。 – dbrin