2016-09-19 3 views
0

У меня проблема с разбиением на страницы, когда у запроса есть некоторые апострофы. Это то, что я использую для создающих разбиение на страницы:вопрос с апострофами в разбивке на страницы

<script type="text/javascript"> 
    $('#pagination-demo').twbsPagination({ 
     totalPages: 50, 
     visiblePages: 5, 
     prev: '<', 
     next: '>', 
     first: '<<', 
     last: '>>', 
     href: 'http://www.monsite.com/search/index.php?a=web&q={$query}&page={{number}}', 
     onPageClick: function (event, page) { 
       $('#page-content').text('Page ' + page); 
     } 
    }); 
</script> 

Например, для поиска со словом «d'антрепризе» нумерация страниц исчезнет из моей страницы.

И если я пишу это как то «д антрепризе», нумерация страниц в порядке и у меня есть по этой ссылке:

Кто есть идея? Я обязан сделать «замену» или что-то в этом роде, чтобы изменить мой апостроф? Или есть способ сохранить его в моем запросе и разбиении на страницы?

+0

И откуда происходит '{$ query}' и '{{number}}'? Вы, вероятно, хотите, чтобы их убрали? – adeneo

+0

Используйте 'urlencode()' для кодирования специальных символов в URL-адресах. – Barmar

+0

Привет, спасибо за ваш ответ :) Я действительно нуб, извините. Должен сказать, что я не знаю, откуда «{{number}}', у меня его нет на моих php-страницах. Но это все еще работает ... '{$ query}' из моей php-страницы, я думаю, и это примерно так: \t '$ query = rawurldecode ($ _ GET ['q']);' – tonarii

ответ

0

Это связано с тем, что вы вызываете синтаксическую ошибку JS, напрямую сбрасывая текст с PHP в контекст javascript. Например. этот код:

$foo = "D'Enterprise"; 

echo "<script> var foo = '$foo';</script>"; 

посылал его пользователю:

var foo = 'D'Enterprise'; 
      ^-^----start/stop string 
       ^^^^^^^^^^--- "Enteprise" - undefined variable 
         ^^--- start an unterminated string 

Если бы один любой вид базовой отладки, как проверка консоли браузера, вы бы видели эту ошибку.

Короче говоря, НИКОГДА непосредственно выводит текст из PHP в «чужой» контекст, особенно если этот контекст - это какой-то другой язык. Вы можете EASILY вызывать синтаксические ошибки на этом языке (точно так же, как и сейчас). Всегда используйте соответствующие методы вывода, которые для PHP порождающие Javascript, чтобы использовать JSON:

$foo = "D'Enterprise"; 
$temp = json_encode($foo); 

echo "<script> var foo = $temp; </script>"; 

который производит

var foo = 'D\'Enterprise'; 

и совершенно правильный код JS.

+0

Hello Marc B, спасибо за ваш ответ. :) Я видел проблему на консоли, но это просто написать SyntaxError, вот почему я смотрел здесь и в другом месте. Итак, мне нужно, чтобы json закодировал мой запрос, прежде чем использовать его в своем javascript, я прав? – tonarii

+0

есть. независимо от того, что вы выводите из PHP ** HAS **, чтобы быть действительным для контекста, в который он выводит его. Поскольку этот контекст является javascript, ваш php-вывод должен быть действительным содержимым строки JS. –

+0

Хорошо Спасибо, я решил это :) – tonarii

Смежные вопросы