[Phpmyadmin-devel] URL parameter separator and Jquery - #3733
Hugues Peccatte
hugues.peccatte at gmail.com
Mon Apr 14 09:53:52 CEST 2014
2014-04-14 9:05 GMT+02:00 Michal Čihař <michal at cihar.com>:
> Hi
>
> Dne Sun, 13 Apr 2014 15:30:57 +0200
> Hugues Peccatte <hugues.peccatte at gmail.com> napsal(a):
>
> > I'm working on bug ticket http://sourceforge.net/p/phpmyadmin/bugs/3733/
> > I already replaced all & in PHP files by the separator defined in
> php.ini.
> > I also replaced a part of & in JS files (almost all). But I still have an
> > issue... with Jquery method $.get...
> >
> > This method have many parameters, and one could be a JSON object of URL
> > parameters.
> > Something like this:
> > var params = {
> > aPath: $expandElem.find('span.aPath').text(),
> > vPath: $expandElem.find('span.vPath').text()
> > };
> > And this:
> > $.get(url, params, function (data) {
> > ...
> > });
>
> It seems to be hardcoded within jQuery.param(). On the other side, if
> you give jQuery.get() a string as a params, it will use it as it is. So
> we can introduce our own function to do the array to string conversion,
> which will use correct separator, something like (completely not
> tested):
>
> function PMA_URL_params(params) {
> var s = [];
> $.each(params, function() {
> s[s.length] = encodeURIComponent( key ) + "=" + encodeURIComponent(
> value );
> });
return s.join(SEPARATOR);
> }
>
> $.get(url, PMA_URL_params(params), function (data) {
> ...
> });
> --
> Michal Čihař | http://cihar.com | http://phpmyadmin.net
Hi,
I was looking for something more implicit, so we wouldn't have to change
the calls to $.get. But that seems to be difficult, so your solution might
be the best.
I just suggest this:
function PMA_URL_params(params) {
var s = ['']; //Set with an empty element, so the join will start with a
SEPARATOR char. If params is empty, the return would be an empty string.
$.each(params, function() {
s[s.length] = encodeURIComponent( key ) + "=" + encodeURIComponent(
value );
});
return s.join(SEPARATOR);
}
//Give a URL with all parameters, not the URL and another parameter with
the GET parameters. Why? Because of the Jquery concatenation that would
concat URL and params with a &.
$.get(url + PMA_URL_params(params), function (data) {
...
});
Is it ok for you ?
Hugues.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20140414/41c2dc13/attachment.html>
More information about the Developers
mailing list