Я работаю на WYSIWYG и секции для вставки исходного кода, как PHP/HTML/Perl/и т.д. ...
Я использую PHP де Geshi для выделите код через jQuery.
Все работает хорошо, я хорошо понимаю свой код, но я потерял символ «+» в возвращаемом коде.
Я думаю, проблема связана с тем, что «$ .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();
?>
Попробуйте кодировать возвращаемый текст PHP, используя: http://php.net/manual/fr/function.htmlentities.php – sdespont
Люди не понимают, что '$ .ajax' делает сама кодировка. Можете ли вы отказаться от любых манипуляций, которые вы делаете на «коде»? Также, пожалуйста, отправьте примеры фактического и ожидаемого запроса и ответа – Alexander