1

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

4

1 回答 1

4

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

您的 textarea 具有 myTextEditor 类。你碰巧有某种 js 富文本编辑器挂在那个类上吗?

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

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

更新:

由于您使用的是 TinyMCE,因此您的问题的答案就在这里

简单来说:

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

于 2013-07-08T20:02:00.350 回答