我的代码有问题,它无法发送addnews.php 中的文本区域
当我使用<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)
,它发送内容,但即使我写了一些东西,它也是空的。
我怀疑我知道发生了什么。
您的文本区域具有类myTextEditor。你是否碰巧有某种js富文本编辑器挂在该类上?
如果您这样做了,请注意,并不是所有的文本编辑器都直接修改变形的文本区域。有些(比如CKEditor)有一个特殊的方法,可以用新的文本更新文本区域。当您提交表单时,这个问题不会出现——只有当您尝试序列化它或通过JS操作它时才会出现。
如果是这种情况,请查看编辑器文档(或提供编辑器链接-"myTextEditor"作为一个搜索词非常模糊)。
更新:
由于您使用的是TinyMCE,您的问题的答案就在这里。
简而言之:
提交前调用tinyMCE.triggerSave();