2012-05-10 13 views
0

URLを使用してパラメータを渡します:setParams({id:id,model:mod})、ブラウザのアドレスバーにはlocalhost/MVC/query?id=1&model=memberが表示されます。それは成功です。URLパラメータと固有の構文

しかし、私は、URLバーに表示されるパラメータを渡す:localhost/MVC/query?fq=model: member+model:new_member。私は "Solr"検索サーバーを統合しようとしています。これはクエリのフィルタリングをサポートする構文です。

助けてください。 、だから私はあなたがtoQueryStringのための新しいバージョンを書くべきだと思う

toQueryString: function(object, recursive) { 
    ... 
    for (j = 0, ln = paramObjects.length; j < ln; j++) { 
     ... 
     params.push(encodeURIComponent(paramObject.name) + '=' + encodeURIComponent(String(value))); 
    } 
    return params.join('&'); 
}, 

それは:の代わりに使用することtoSolrQueryStringであると仮定:

getHref: function() { 
    var me = this, 
     params = Ext.apply({}, me.baseParams); 
    params = Ext.apply(params, me.params); 
    return me.href ? Ext.urlAppend(me.href, Ext.Object.toQueryString(params)) : false; 
}, 

toQueryString()

答えて

0

だけButton#getHref()を見てみましょう=および&の代わりに+です。最後にgetHref()を上書きして、ボタン内でtoSolrQueryString関数を使用します。

return me.href ? Ext.urlAppend(me.href, 'fq=' + toSolrQueryString(params)) : false; 
+0

文字列を取得するために 'Ext.Object.toQueryString(params)'を使用できることにもう一度気付くと、 'replace()'関数を適用してSolrクエリのスタイルを取得してください上記の新しい関数 'toSolrQueryString()'を書くのではなく、文字列 –

関連する問題