长期阅读者,第一次提问......我会开门见山。
我正在将文本区域数据传递给 QUERY_STRING,并需要它与 mySQL 配合良好。更具体地说,我需要文本显示正确的换行符和间距,同时显示所有字符(我正在看着你,#和 friend 们!)。另外,我需要它来转义所有讨厌的 ' 和 "字符。
我已经尝试了(几乎希望如此)一切。我似乎无法找到正确的成分;我可以使用空格和换行符,但不能使用 # 字符。我可以得到 # 字符,但不能得到撇号。
添加:我通过 QUERY 字符串而不是 GET 传递此数据的原因是因为我在后台使用 JavaScript(使用 XMLHttpRequest)将数据传递到 PHP 文件。
具体来说,该页面被设置为在不刷新页面的情况下发送消息(即 Facebook)。它通过 DOM 从 ID 文本区域获取数据,将其传递到一个单独的 PHP 文件,该文件处理 mySQL 请求,但在混合过程中,我丢失了信息并且它不会翻译。我已经为此工作了两天,但无法让它发挥作用。帮助!
编辑: 这是代码。其中一些代码片段位于不同的页面上,但可以一起尝试在不更新/刷新页面的情况下发送消息。
<textarea spellcheck='false' id='composeText' maxlength='250'>
</textarea>
<input type='button' value='Send' style='float:right;' onclick='sendMsg(<?php echo '123654674, 159753';?>)' id='sendMsg'>
parse_str($_SERVER['QUERY_STRING'],$g);
if ($g) {
$msg_id = $g['msg_id'];
$msgFrom = $g['msgFrom'];
$message = addslashes($g['message']);
$message = nl2br($message);
$msgTo = $g['msgTo'];
}
echo "<input type='hidden' id='msgToId2' value='".$msgTo."'>";
addMsg($msg_id, $msgFrom, $msgTo, $message, $conn);
function sendMsg(msg_id, msgFrom) {
msg_id = Math.floor((Math.random() * 1000000000) + 1);
msgFrom = '159753';
msgTo = document.getElementById('msgToId').value;
if (msgTo == "") msgTo = document.getElementById('msgToId2').value;
message = document.getElementById('composeText').value;
message = message.replace(/\r?\n/g, '<br/>');
message = encodeURIComponent(message);
getRequest(
'sendMsg.php?msg_id=' + msg_id + '&msgFrom=' + msgFrom + '&msgTo=' + msgTo + '&message=' + message, // URL for the PHP file
sendMsgOutput, // handle successful request
sendMsgError // handle error
);
return false;
}
function addMsg($msg_id, $msgfrom, $msgto, $message, $conn) {
$message = mysqli_real_escape_string($conn, $message);
$query = "INSERT INTO `messages` (`msg_id`, `msgfrom`, `msgto`, `message`, `timestamp`) VALUES ('$msg_id', '$msgfrom', '$msgto', '$message', DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'))";
$result = mysqli_query($conn, $query);
}
最佳答案
如果一切都失败了,我想我应该把它留在这里,你可以使用类似 TinyMCE 的东西我用过,效果相当不错。
使用
根据该网站的一个简单演示,
<!DOCTYPE html>
<html>
<head>
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>tinymce.init({ selector:'textarea' });</script>
</head>
<body>
<textarea>Easy! You should check out MoxieManager!</textarea>
</body>
</html>
被所有额外的零碎信息压垮了?
无需担心,因为您可以删除它们并保留您想要的内容。下面是我使用的最小设置,它可以进一步减少。
tinymce.init({
selector: '.tiny-mce',
toolbar: 'bold italic alignleft aligncenter alignright bullist numlist outdent indent undo redo styleselect',
statusbar: false,
menubar: false
});
documentation也很简洁,这是一个优点。来自 editors appearance至 content filtering它有大量可以自定义的选项。
您可以找到完整的功能列表here .
关于javascript - PHP mySQL textarea --- 整个shebang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317846/