我的代码有问题,它不会在addnews.php中发送textarea
当我使用<input type="text" name="content">
时,它会发送,但<textarea>
将不会发送。
的jQuery
$("#form").submit(function(event) {
var form = this;
event.preventDefault();
var poster = $.post('addnews.php', $(this).serialize());
poster.done(function(data) {
$(".result").html(data);
setTimeout(function() { $(".result").hide(); }, 2000);
form.reset();
});
});
PHP
if (isset($_POST['rubric'])) {
if (empty($_POST['rubric']) && empty($_POST['content'])) {
echo '<div class="alert alert-error alert-box">Du måste fylla i alla fält.</div>';
}
else {
$rubric = htmlentities($_POST['rubric']);
$sql = "INSERT INTO ".PREFIX."news(`date`, `poster`)
VALUES('".time()."', '".$userID."')";
mysql_query($sql);
$id = mysql_insert_id();
$sql2 = "INSERT INTO ".PREFIX."news_contents(`newsID`, `headline`, `content`)
VALUES('".$id."', '".$rubric."', '".$_POST['content']."')";
mysql_query($sql2);
echo '<div class="alert alert-box alert-success">Klart, nyheten postad.</div>';
}
}
HTML
echo '<div class="result"></div>';
echo '<form method="post" id="form" style="padding: 5px;">';
echo '<input type="text" name="rubric" placeholder="Rubrik..." style="width: 778px;
border-bottom: none;font-size: 10px;
font-family:Verdana, Arial, Helvetica, sans-serif;"><br>';
echo '<textarea name="content" class="myTextEditor" style="width: 800px;
height: 500px;"></textarea>';
echo '<br><input type="submit" name="addnews" value="Spara"
class="btn btn-primary btn-small pull-right" style="font-weight:bold;">
<a href="?p=news" class="btn btn-mini addbutton pull-right"
style="font-weight:bold;margin-right: 10px;">Tillbaka</a>';
echo '</form>';
在PHP文件中,我做了一个print_r($_POST)
并发送内容,但即使我写了一些东西也是空的。
答案 0 :(得分:4)
我怀疑我知道发生了什么。
你的textarea有myTextEditor类。你碰巧在那个班级里挂了一些js富文本编辑器吗?
如果您这样做,请注意并非所有文本编辑器都直接修改变形的textarea。一些(如CKEditor)有一个特殊的方法,用新文本更新textarea。提交表单时不会显示此问题 - 仅当您尝试序列化或通过JS操作它时。
如果是这种情况,请检查编辑器文档(或提供编辑器的链接 - 'myTextEditor'作为搜索词非常模糊)。
<强>更新强>
由于您使用的是TinyMCE,因此问题的答案为here。
简而言之:
在提交之前调用tinyMCE.triggerSave();