あるExt.formPanelテキストフィールドからコードの別の部分に文字列を渡すことについて1つの質問があります。formPanelに2つの「テキストフィールド」があり、コードにある「url」の一部としてそこに入力する単語が必要です。おそらくあなたは尋ねるかもしれません、なぜこの男はそれを望んでいますか?これは、私が使用している「url」に、postgisdbテーブルにGeoJSONとして保存されている機能を生成するPHPスクリプトがあるためです。
このコード:
[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]
これらは私がすでにテストしたケースです:
- url ::
http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom
これにより、テーブル全体「boreholes_point_wgs84」がGeoJSONとして生成されます。 - url ::
http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom¶meters=station ilike '%llena%'
これにより、「ステーション」列に「llena」が含まれる機能が1つだけ生成されます。したがって、このようにして、検索フォームから機能を見つけることができます。
私が考えていたのは、「textfield」に入力したこれら2つの文字列を渡して、これら2つの単語をキャッチし、上記の2番目のケースを形成できるように「url」を変更できるかどうかです。私はこれで遊んでいました:
url:、http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom¶meters=" + "column" + ilike '%"string"%'
したがって、各xtypeの下に指定した「id」を使用しますが、機能しません。
よろしくお願いします。
よろしくお願いします、
ゲリー