jQuery不会发布textarea?

时间:2013-07-08 11:21:47

标签: php jquery tinymce

我的代码有问题,它不会在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)并发送内容,但即使我写了一些东西也是空的。

1 个答案:

答案 0 :(得分:4)

我怀疑我知道发生了什么。

你的textarea有myTextEditor类。你碰巧在那个班级里挂了一些js富文本编辑器吗?

如果您这样做,请注意并非所有文本编辑器都直接修改变形的textarea。一些(如CKEditor)有一个特殊的方法,用新文本更新textarea。提交表单时不会显示此问题 - 仅当您尝试序列化或通过JS操作它时。

如果是这种情况,请检查编辑器文档(或提供编辑器的链接 - 'myTextEditor'作为搜索词非常模糊)。

<强>更新

由于您使用的是TinyMCE,因此问题的答案为here

简而言之:

  

在提交之前调用tinyMCE.triggerSave();