0
PHPにAjax(jQuery)を介して文字列を送信しようとしたときに問題が発生しましたか?たとえば、クライアント側では、コンテンツ編集可能なdivで、クライアントは「私の脳&私の頭はあなたのものよりも」ではないが、innerHTMLで取得する文字列は "&"で止まる。私が建てられ、私自身のテキスト・エディタへの最善の方法を探しています実際に ...ajaxの文字列操作phpに送る
は詳細を尋ねることを躊躇しないでください ...
クライアント側のjsスクリプト:
function uncode(id) {
var str = id.innerHTML;
str = str.replace(/'/gi, '\'')
.replace(/"/gi, '\"')
.replace(/&/gi, '\&')
.replace(/</gi, '\<')
.replace(/>/gi, '\>')
.replace(/ /gi, ' ');
return str;
}
$('#saveText').click(function() {
var str = uncode(document.getElementById('myText'));
var myDatas = 'update_bio=update_bio' + '&new_bio=' + str + '&id_bio=' + id_str[1];
$.ajax({
type: 'POST',
url: mypage.php,
data: myDatas,
success: function(data) {
alert(data);
},
encoding: 'UTF-8',
});
});
サーバー側:?
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=myDB', 'root', 'root', $pdo_options);
$bdd->query('SET NAMES utf8');
if (!empty($_POST['update_bio'])) {
$reponse = $bdd->prepare('UPDATE bios SET texte=:new_bio WHERE id=:id_bio');
$reponse->execute(array(
'new_bio' => htmlspecialchars($_POST['new_bio']),
'id_bio' => htmlspecialchars($_POST['id_bio'])
));
$reponse->closeCursor();
};
私は(ユーザーのレイアウト変更のため)htmlタグを維持するためにinnerHTMLプロパティを使用していません。テキストエディタでは、execCommand関数によって制御されるボタンを使用しました。 ' Text en gras'のようなHTMLタグを作成します。だから私はタグを保持するだけでなく、スクリプトからテキストを保存する必要があります...テキスト()関数は私がそれを行うのに役立ちますか? –