当查询中包含一些撇号时,我的分页存在问题。 这就是我用来创建分页的原因:
#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;或类似的东西,改变我的撇号? 或者有一种方法可以将它保存在我的查询和分页中?
答案 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代码。