formPanel内のコンボボックスから値を取得して(openlayers.protocol.httpの)プロトコルURLに渡そうとしています。これは、 http://jsbin.com/ireqed/2/editに基づいて取得したいURLです(コンボボックスで「cars」を選択し、テキストフィールドに「cool」と入力する場合)。
http://www.mop.org/fs/cars?format=GeoJSON&comments__ilike=cool&queryable=comments
テスト後、コンボボックスで1つの値を選択し、テキストフィールドに単語を入力した後(上記のように)、最終的に必要なURLを取得できます。
formPanelのプロトコルでこの新しいURLを送信するには、検索ボタンのハンドラー関数でautoLoad呼び出しを使用します。これはURLを送信していると思いますが、プロトコル自体(XMLHttpRequest.jsなど)ではなくExtJSでキャッチされます。 。そのため、GeoJSONの出力はformPanelに表示されます。これを示すために3つのPNGを添付しました:、、。
ファイアバグでは、「検索」ボタンを押すと2つのURLが呼び出され、最初のURLはプロトコルのURLで置き換えたいURLですが、ext-base.jsに移動します。これは間違った場所です。2つ目は、なぜ送信されるのか実際にはわかりませんが、適切な場所であるXMLHttpRequest.jsに移動しますが、送信すべきではありません。
したがって、最初にURLを送信する前に、URLを変更する必要があります。どうすればよいですか?ところで、ExtJSに属する存在しないURLを置き換えているようです、plsヘルプ、ありがとう
更新#1:
近づく...OpenLayers.loadURL(myurl, {}, null, function(response){});
ハンドラー関数を追加すると、URLがXMLHttpRequest.js(正しい場所)に送信されますが、すぐに別のURL(フォームパネルから)が同じ場所に送信され、これが正しい場所をカバーするため、方法はありますかopenlayers.loadurl関数にタイミングを追加するには?この関数は非同期で機能することを理解しています(そのため、2番目の関数よりも高速で最初に送信されます)、2番目の関数を上書きする方法はありますか?