2016-09-19 8 views
0

クエリにアポストロフィが含まれていると、ページングに問題があります。改ページは、私のページの消え単語「D'ENTREPRISE」と検索に、例えばページネーションでアポストロフィを使用する問題

<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のENTREPRISE」のようにそれを書いた場合、ページネーションは大丈夫です、私はこのリンクを持っている:

誰かがアイデアを持っていますか? 私はアポストロフィを変更するために、「置き換え」などをする義務がありますか? または、それを私のクエリとページネーションに保持する方法がありますか?

+0

'{$ query}'と '{{number}} 'はどこから来ますか?あなたはおそらくそれらをurlencodeしたいですか? – adeneo

+0

URLに特殊文字をエンコードするには、 'urlencode()'を使用します。 – Barmar

+0

こんにちは、あなたの返信ありがとう:) 私は本当にnoobです、私は申し訳ありません。 私は '{{number}}'がどこから来ているのかわかりませんが、私は自分のPHPページでそれを持っていません。しかし、それでも動作します... '{$ query}'は私のPHPページのものです。これは次のようなものです:\t '$ query = rawurldecode($ _ GET ['q']);' – tonarii

答えて

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 

あなたが基本的なデバッグのいずれかの種類をたい場合は、ブラウザのコンソールをチェックするように、あなたがエラーを見ていると思います。

簡潔に言えば、NEVERは、特にそのコンテキストが他の言語である場合は、PHPのテキストを "外部"のコンテキストに直接出力します。あなたは簡単にその言語で文法エラーを引き起こすことができます(あなたが今行っているのとまったく同じです)。

var foo = 'D\'Enterprise'; 

を生成し、完全に有効なJSコードである

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

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

:常にPHP用のJavascriptを生成し、適切な出力方法を、使用し、JSONを使用することです。

+0

こんにちはマークB、 あなたの答えに感謝します。 :) 私はコンソールでこの問題を見ましたが、それは単にSyntaxErrorと書いてあります。だから私はここや他の場所を見ました。 それでは、jsonがJavaScriptを使用する前にjsonをエンコードする必要がありますか? – tonarii

+0

はい。あなたがPHPから出力したものは**それが出力しているコンテキストに対して有効である必要があります。そのコンテキストはjavascriptなので、あなたのPHP出力は有効なJS文字列の内容でなければなりません。 –

+0

ありがとう、私はそれを解決しました:) – tonarii

関連する問題