2012-02-07 2 views
0

Используя этот плагин JQuery: http://archive.plugins.jquery.com/project/query-objectСтрока запроса плагин конвертирует + в% 2B

Так что у меня этот адрес: results?search_query=alex+voievod и мне нужно добавить &page=2, что я делаю это с упомянутым плагином.

Теперь проблема заключается в том, что она преобразует + в %2B и и это влияет на мою просмотра страницы. Я попытался установить spaces: false, как говорится в документации (даже если это не spaces: VALUEspace)

Но это не будет работать, это добавляет параметр, но он также изменяет +, как уже упоминалось выше:

results?search_query=alex%2Bvoievod&page=2

Что мне не хватает?

пространство

Значение по умолчанию это верно, поскольку большинство людей предпочитают плюс знаки в строках запроса, которые будут преобразованы в пробелы. Стандартно практика использования знаков плюс для представления пробелов в строках запроса до избегает страшного% 20, поэтому анализатор обновлен и по умолчанию преобразует знаки плюс в пробелы. Однако эту функцию можно отключить , если вы решите, что вам нужны буквальные знаки плюс в строках запроса.

<script type="text/javascript"> $.query = { spaces: false }; </script> 
<script src="<?=base_url();?>resources/js/libs/jquery.query.js"></script> 

Внутри jquery.query.js:

new function(settings) { 
    // Various Settings 
    var $separator = settings.separator || '&'; 
    var $spaces = settings.spaces === false ? false : true; 
    alert($spaces);->Returns the value as set, true or false. 
    var $suffix = settings.suffix === false ? '' : '[]'; 

Я прочитал чуток код, но я не могу найти, где это ошибка, имея в виду, что spaces не имеет никакого эффекта.

Edit: код я использую с $.query

var cur_page = $.query.get('page'); 
if (cur_page.length == 0){var next_page = cur_page + 2;} 
else { var next_page = cur_page + 1; } 
var page = $.query.set('page', next_page).toString(); 
alert(page); 
/*window.location.replace(page);*/ 

Я собираюсь попробовать и связаться с создателем этого плагина: https://github.com/blairmitchelmore/jquery.plugins/blob/master/jquery.query.js

+0

Можете ли вы показать свой код, как вы его используете? Вы используете метод toString для получения комбинированной строки? – ShankarSangoli

ответ

0

Посмотрите на его исходный код, я вижу, что если вы введите + в свою очередь, а затем установите space в true, потому что он преобразует их в (пробел), а затем с помощью toString() преобразует их обратно в +. Попробуй это.

$.query = { spaces: true }; 
$.query.toString(); 
+0

Я добавил код, который я использую с '$ .query' в редактировании. Используется '.toString()', я все еще проверяю исходный код, чтобы увидеть, где это может быть вызвано ошибкой, потому что no mather, если 'true' или' false' установлен в 'spaces', выводится тот же результат. – Alex