我試圖從formPanel裏面的組合框中獲取一個值,將它傳遞給協議url(openlayers.protocol.http)。這是URL,基於http://jsbin.com/ireqed/2/edit,我想(在情況下,我在下拉列表中選擇「汽車」,並在文本框輸入「酷」):ExtJS,OpenLayers:在發送之前修改url協議
http://www.mop.org/fs/cars?format=GeoJSON&comments__ilike=cool&queryable=comments
測試後,我終於可以在組合框中選擇一個值並在文本框中輸入一個單詞後(如上所述)獲取我想要的URL。
要在formPanel中的協議中發送這個新的URL,我在我的搜索按鈕的處理函數中使用autoLoad調用,我認爲這是發送url但協議本身沒有捕獲它(即XMLHttpRequest.js )但ExtJS。因此,GeoJSON輸出顯示在formPanel中。我附上了三個PNG來顯示:,,。
在firebug中,一旦按下「搜索」按鈕,就會調用兩個URL,第一個URL是我想要在協議的URL中替換的URL,但它會轉到ext-base.js,這是錯誤的地點。第二個,我實際上不知道爲什麼發送,去XMLHttpRequest.js這是正確的地方,但它不應該被髮送。
因此,在必須首先發送網址之前,我需要更改它,我該怎麼做?順便說一句,在我看來它正在取代屬於ExtJS的不存在的網址,請幫忙,謝謝
更新#1:
越來越近......因爲在處理函數sents網址添加OpenLayers.loadURL(myurl, {}, null, function(response){});
XMLHttpRequest.js(正確的地方),但立即另一個URL(從formpanel)被髮送到同一個地方,這覆蓋了正確的,有沒有辦法給openlayers.loadurl函數添加一些時間?我明白這個函數是異步工作的(這就是爲什麼比第二個提交更快並且首先提交),是否有一種方法可以覆蓋第二個?
添加一個'name'到ComboBox配置:) – A1rPun
@ A1rPim謝謝你的答案,但這不是問題,我編輯了這個問題來解釋它更好[我認爲= =]] – Gery
嘗試在http://jsfiddle.net上創建你的例子 –