2016-09-19 3 views
0

Ich habe ein Problem mit meiner Seitennummerierung, wenn eine Abfrage einige Apostrophen drin haben. Das ist, was ich bin mit der Paginierung creat:Problem mit Apostrophen in Paginierung

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

Zum Beispiel für eine Suche mit dem Wort „d'entreprise“ die Paginierung meiner Seite verschwinden.

Und wenn ich es so, dass „d entreprise“ schreiben, die Paginierung ist in Ordnung, und ich habe diesen Link:

Jemand eine Idee? Bin ich verpflichtet, einen "Ersatz" oder ähnliches zu machen, um meinen Apostroph zu ändern? Oder gibt es eine Möglichkeit, es in meiner Abfrage und Paginierung zu halten?

+0

Woher kommen '{$ query}' und '{{number}}'? Willst du das wahrscheinlich per Urlcode? – adeneo

+0

Verwenden Sie 'urlencode()', um Sonderzeichen in URLs zu codieren. – Barmar

+0

Hallo, vielen Dank für Ihre Antwort :) Ich bin wirklich ein Noob, tut mir leid. Ich muss sagen, dass ich nicht weiß woher '{{Nummer}}' kommt, ich habe es nicht auf meinen PHP-Seiten. Aber das funktioniert immer noch ... Die '{$ query}' ist von meiner PHP-Seite und ich denke, und es ist so: \t '$ query = rawurldecode ($ _ GET ['q']);' – tonarii

Antwort

0

Das liegt daran, dass Sie einen JS-Syntaxfehler verursachen, indem Sie Text direkt aus PHP in einen Javascript-Kontext ablegen. Z.B. dieser Code:

$foo = "D'Enterprise"; 

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

würden es dem Benutzer senden:

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

Wenn Sie eine würde jede Art von grundlegenden Debugging, wie Browser Konsole Überprüfung Sie den Fehler gesehen haben würde.

Kurz gesagt, NIE direkt Text aus PHP in einen "fremden" Kontext ausgeben, vor allem, wenn dieser Kontext eine andere Sprache ist. Sie können leicht Syntaxfehler in dieser Sprache verursachen (genau wie Sie gerade tun). Immer geeignete Ausgabemethoden verwenden, die für PHP Javascript zu erzeugen, ist JSON zu verwenden:

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

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

die

var foo = 'D\'Enterprise'; 

produziert und ist absolut gültige JS-Code.

+0

Hallo Marc B, danke für deine antwort. :) Ich sah das Problem in der Konsole, aber das ist nur schreiben SyntaxError, deshalb habe ich hier und anderswo gesucht. Ok, also ich muss JSON codieren meine Abfrage vor der Verwendung in meinem Javascript, bin ich richtig? – tonarii

+0

ja. was auch immer Sie aus PHP ausgeben ** HAT **, um für den Kontext gültig zu sein, in den es ausgegeben wird. Da dieser Kontext ein Javascript ist, muss Ihre PHP-Ausgabe ein gültiger JS-String-Inhalt sein. –

+0

Ok Danke, ich habe es gelöst :) – tonarii