分页中的撇号问题

时间:2016-09-19 15:24:25

标签: javascript php pagination

当查询中包含一些撇号时,我的分页存在问题。 这就是我用来创建分页的原因:

#include <FlexLexer.h>

例如,对于搜索单词&#34; d&#39; entreprise&#34;我的页面的分页消失了。

如果我这样写,那就是这样做,那么分页就可以了,我有这个链接:

<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>

有人有想法吗? 我有义务做一个&#34;替换&#34;或类似的东西,改变我的撇号? 或者有一种方法可以将它保存在我的查询和分页中?

1 个答案:

答案 0 :(得分:0)

这是因为你直接将PHP中的文本转储到javascript上下文中会导致JS语法错误。例如。这段代码:

$foo = "D'Enterprise";

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

会将此信息发送给用户:

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

如果您进行了一种基本的调试,例如检查浏览器的控制台,您就会看到错误。

简而言之,从不直接将PHP中的文本输出到“外部”上下文中,特别是如果该上下文是其他语言。您可以轻松地使用该语言导致语法错误(正如您现在所做的那样)。总是使用适当的输出方法,用于PHP生成Javascript,是使用JSON:

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

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

产生

var foo = 'D\'Enterprise';

并且是完全有效的JS代码。