好的昨天我终于让TinyMCE在我的网站上工作了。 我还下载了一个提供代码突出显示的插件,但该插件似乎引起了一些“混乱”。
正如我们使用它的人所知,TinyMCE使用<textarea></textarea>
进行用户输入。好吧,我为它下载的代码荧光笔插件也是如此。我从来没有使用textarea,但看起来你不能在另一个中嵌套。
如果我使用插件向我的文本添加代码示例,TinyMCE似乎认为文章以插件编写的textarea的结束标记结束,而不是文章底部的那个。
任何人都可以推荐更好的插件吗?
至于PHP,那让我感到茫然。我的代码昨天立刻正在运行,但是一旦我今天尝试使用它,它就会超时。我试图做的就是加载到TinyMCE的记录上的mysql更新。 我知道导致问题的不是mysql,因为我仍然可以使用phpmyadmin登录并在那里处理任何数据库。 我不知道从哪里开始进行故障查找,所以如果有人可以提供指导,那将非常感激。
对于记录,这是我在尝试提交表单时遇到的错误,以及它背后的php代码:
Warning: PDO::__construct() [pdo.--construct]: [2002] A connection attempt failed because the connected party did not (trying to connect via tcp://localhost:3306) in D:\xampp\htdocs\logansarchive\admin\articlework.php on line 16
Fatal error: Maximum execution time of 60 seconds exceeded in D:\xampp\htdocs\logansarchive\admin\articlework.php on line 0
代码根据用户选择的操作动态生成表单(创建新文章或编辑现有文章)。
<?php
switch($action) {
case "Edit":
$query = "SELECT * FROM Articles WHERE ArticleTitle = '".$target."'";
$result = mysql_query($query) or die ("Error in query:<br />".$mysql_error());
if (mysql_num_rows($result) > 0) {
list($ArticleID, $Category, $ArticleDate, $ArticleTitle, $ArticleContent) = mysql_fetch_row($result);
$cat = $Category;
$title = $ArticleTitle;
$content = $ArticleContent;
}
$query = "SELECT CategoryName FROM Categories WHERE DeletedYN = 'No'";
$result = mysql_query($query) or die ("Error in query:<br />".$mysql_error());
echo "<form name=\"editarticle\" method=\"post\" action=\"articlework.php\">".
"<table>".
"<tr>".
"<td>Article Title<br /><input type=\"text\" name=\"article_title\" value=\"".$title."\" style=\"width: 300px;\" /></td>".
"<td>Category<br />".
"<select name=\"article_cat\">".
"<option selected value=\"".$cat."\">".$cat."</option>".
"<option>----------------------</option>";
if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_array($result)) {
echo "<option value=\"".$row['CategoryName']."\">".$row['CategoryName']."</option>";
}
}
echo "</td>".
"</tr>".
"<tr>".
"<td colspan=\"2\"><textarea id=\"article_content\" name=\"article_content\" rows=\"15\" cols=\"80\" style=\"width: 80%;\">".$content."</textarea>".
"<tr>".
"</table>".
"<div class=\"RightAlign\">".
"<input type=\"submit\" name=\"btnSubmit\" value=\"Update Article\" />".
"<input type=\"hidden\" name=\"srctitle\" value=\"".$title."\" />".
"<input type=\"hidden\" name=\"action\" value=\"".$action."\" /></div>".
"</form>";
break;
case "New":
echo "<form name=\"newarticle\" method=\"post\" action=\"articlework.php\">".
"<table>".
"<tr>".
"<td>Article Title<br /><input type=\"text\" name=\"article_title\" style=\"width: 300px;\" /></td>".
"<td>Category<br />".
"<select name=\"article_cat\">";
$query = "SELECT CategoryName FROM Categories WHERE DeletedYN = 'No'";
$result = mysql_query($query) or die ("Error in query:<br />".$mysql_error());
if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_array($result)) {
echo "<option value=\"".$row['CategoryName']."\">".$row['CategoryName']."</option>";
}
}
echo "</td>".
"</tr>".
"<tr>".
"<td colspan=\"2\"><textarea id=\"article_content\" name=\"article_content\" rows=\"15\" cols=\"80\" style=\"width: 80%;\"></textarea></td>".
"</tr>".
"</table>".
"<div class=\"RightAlign\">".
"<input type=\"submit\" name=\"btnSubmit\" value=\"Create Article\" />".
"<input type=\"hidden\" name=\"action\" value=\"".$action."\" /></div>".
"</form>";
break;
}
?>
以下是在数据库中完成工作的代码:
<?php
$action = $_REQUEST["action"];
$target = $_REQUEST["target"];
$srctitle = $_POST["srctitle"];
$title = $_POST["article_title"];
$cat = $_POST["article_cat"];
$content = $_POST["article_content"];
// Set database server access variables:
$host = "localhost";
$user = "root";
$pass = "root";
$db = "logansarchive";
// Open connection
$dbh = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pass);
$date = date('Y-m-d H:i:s');
switch ($action) {
case "Edit":
$query = $dbh->prepare("UPDATE Articles ".
"SET ArticleTitle = :title, Category = :cat, ArticleDate = :date, ArticleContent = :content ".
"WHERE ArticleTitle = :srctitle");
$query->bindParam(':title', $title);
$query->bindParam(':cat', $cat);
$query->bindParam(':date', $date);
$query->bindParam(':content', $content);
$query->bindParam(':srctitle', $srctitle);
$query->execute();
break;
case "New":
$query = $dbh->prepare("INSERT INTO Articles(Category, ArticleDate, ArticleTitle, ArticleContent) ".
"VALUES(:cat, :date, :title, :content)");
$query->bindParam(':cat', $cat);
$query->bindParam(':date', $date);
$query->bindParam(':title', $title);
$query->bindParam(':content', $content);
$query->execute();
break;
case "Delete":
if ($target != "") {
$query = $dbh->prepare("UPDATE Articles ".
"SET DeletedYN = :del ".
"WHERE ArticleTitle = :title");
$query->bindValue(':del', "Yes");
$query->bindParam(':title', $target);
$query->execute();
}
else {
header("Location: index.php?result=failed");
}
break;
}
header("Location: index.php?result=success");
?>
答案 0 :(得分:0)
不,TinyMCE不会将<textarea></textarea>
用于用户输入。 Tinymce初始化为一个html元素,它隐藏在tinymce启动时。 Tinymce使用一个令人满意的iframe来编辑内容并为其设置样式。在特殊事件中,编辑器内容将被写回到以前的html元素(在很多情况下是textarea)。 Tinymce具有内置的清理功能,可根据您的设置清理您的内容。我猜textarea-tags会被清理干净。您必须将它们添加到valid_elements列表中,也可以添加到valid_children
列表中。