【问题标题】:Getting value from contenteditable div从 contenteditable div 中获取价值
【发布时间】:2013-12-28 12:13:30
【问题描述】:

到目前为止,我一直使用文本区域作为表单的主要输入。我已将其更改为使用 contenteditable div,因为我想允许一些格式。

以前,当我拥有 textarea 时,使用 Ajax 和 PHP 提交的表单很好。现在我已将其更改为使用 contenteditable div,它不再起作用,我不知道为什么。

HTML:

<form>
    <div name="post_field" class="new-post post-field" placeholder="Make a comment..." contenteditable="true"></div>
    <input name="user_id" type="hidden" <?php echo 'value="' . $user_info[0] . '"' ?>>
    <input name="display_name" type="hidden" <?php echo 'value="' . $user_info[2] . '"' ?>>
    <ul class="btn-toggle format-post">
        <button onclick="bold()"><i class="fa-icon-bold"></i></button>
        <button onclick="italic()"><i class="fa-icon-italic"></i></button>
    </ul>
    <div class="post-buttons btn-toggle">
        <button class="btn-new pull-right" type="submit">Submit</button>
    </div>
</form>

JQuery Ajax:

$(document).ready(function() {
    $(document).on("submit", "form", function(event) {
        event.preventDefault();
        $.ajax({
            url: 'php/post.php',
            type: 'POST',
            dataType: 'json',
            data: $(this).serialize(),
            success: function(data) {
                alert(data.message);
            }
        });
    });
});

PHP (post.php):只是您的典型检查并回显消息。这只是代码的sn-p。

<?php

    $user_id = $_POST["user_id"];
    $display_name = $_POST["display_name"];
    $post_content = $_POST["post_field"];

    $array = array('message' => $post_content);
    echo json_encode($array);

?>

由于某种原因,自从我添加了 contenteditable div 后,它就不再发回帖子内容了。

请帮忙!

【问题讨论】:

  • 您可能必须将 contentEditable div 中的内容绑定到表单中的隐藏字段并将其发送到 ajax 调用
  • 您可以尝试将
    设为

标签: javascript php ajax jquery


【解决方案1】:

div 的内容未序列化。您必须自己添加它们。

var data = $(this).serialize();
data += "post_field=" + encodeURIComponent($("[name=post_field]").html());

【讨论】:

  • 不是我的问题,而是 +1 数据 += 字符串。不错的代码
  • @AndyHolmes 这个网站的很大一部分是支持其他人的问题
  • 我尝试了您的建议,但仍然无法正常工作。这是我添加的内容:http://pastebin.com/hc7bfDit
  • 没关系,我只是将线路更改为data: $(this).serialize() + "&amp;post_field=" + $('[name=post_field]').html(),。感谢您帮助我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多