wysiwyg と、PHP/HTML/Perl/etc のようなソース コードを挿入するセクションに取り組んでいます...
jQuery 経由でコードを強調表示するために、de PHP Geshi を使用します。
すべてがうまく機能し、コードをうまく取得できましたが、返されたコードで文字「+」が失われました。
問題は、送信時に新しいパラメータを追加するなど、「$.post」が「+」を解釈するという事実にあると思いますが、間違っているだけです。
POST や GET でさえ、変な文字がたくさんあるソース コードを取得するための適切なソリューションではありません... 新しいアイデアに興味があります ...
jQuery コード:
$('#valider_code').click(function() {
// On selectionne le contenue du textarea
var code = $("#code").val();
code = addslashes(code);
// On cache le div
$('#input_code').hide();
$.post('/get_geshi.php', { "code" : code, "langage" : langage }, function(data) {
data = data.replace(/\n|\r|\r\n/g, '<br>');
// On insert le code
var embed = '<div id="code_source">'+ data +'</div>';
if($.browser.msie) {
var selection = editor.contentWindow.document.selection;
var range = selection.createRange();
range.pasteHTML(embed);
}
else {
execCommand("inserthtml", embed);
}
langage = "";
code = $("#code").val('');
}); // Fin get
return false; // prevent default
});
get_geshi.php
<?php
require_once('geshi.php');
$source = stripslashes(urldecode($_POST["code"]));
$language = $_POST["langage"];
$geshi =& new GeSHi($source, $language);
echo $geshi->parse_code();
?>