【问题标题】:Cannot store summernote value into database, it returns [object Object]无法将summernote值存储到数据库中,它返回[object Object]
【发布时间】:2015-08-03 17:31:23
【问题描述】:

我正在尝试使用 ajax/jquerysummernote 值存储到 database 但它只是将此值发送到数据库字段---- -> [object 对象].

HTML

<div class="form-group">
    <label for="description">Desciption</label>
    <textarea name="description" id="description" class="summernote"></textarea>
</div>                                   
<div class="text-right">
    <a href="#" class="btn btn-primary" id="publish">Publier</a>
</div>

Js 文件:

$("#publish").on('click', function(e){
    e.preventDefault();     
    var description = $('textarea[name="description"]').html($('.summernote').code());  

    $.ajax({
        url : 'ajax/newpost.php',
        data : 'description=' + description,    

        success : function(data){                               
            alert(data);
            location.reload();                  
        }
    });         
});

newpost.php

    require_once('../config/connect.php');      

    $description = $_GET['description'];



    $stmt = $PDO->prepare("INSERT INTO `forum_posts` (`description`) VALUES(?)");
    $stmt->execute(array($description));

    if($stmt){
        echo "done ......................";
    }else{
        echo "error ..................";
    }

【问题讨论】:

  • console.log(description) 在你的 JS 代码中,你可能会发现它是一个 jquery 对象。
  • 顺便说一下,我认为 POST 请求更适合这个。
  • 我尝试了 POST 请求,但它也不起作用。你能给我举个例子吗?也许你的方法会有所帮助

标签: php jquery summernote


【解决方案1】:

您应该将$('textarea[name="description"]').html($('.summernote').code() 替换为$('textarea[name="description"]').val()

【讨论】:

  • 它也不起作用。它总是返回 [Object Object] 我发现这个:gist.github.com/soomtong/6635053 它说我们应该使用 code() instread of val();但两者都不起作用
  • $('textarea[name="description"]').val() 将空数据发送到数据库
【解决方案2】:

只需将 Summernote 编辑器的类传递给您的 textarea,然后使用 textarea 名称选择帖子值。

例如:

<textarea name="description" class="full-editor"> </textarea>

然后:

$description = $_POST['description'];

【讨论】:

    【解决方案3】:

    只需 $("#description").code();与summernote。函数会自己搜索值,不需要指明完整路径,textarea/div根目录。

    【讨论】:

      【解决方案4】:

      我在使用带有 ajax 表单的 MVC 5.2.3/Razor 时遇到了同样的问题。从 summernote 0.8.1 开始,建议使用$("#mysummernote").summernote('code'),但这不起作用。它会为您提供&lt;div&gt;,有时还会提供额外的&lt;span&gt;,所有这些都包含在[ ] 中,并带有您的summernote 文本。这导致它被识别为对象。

      除非有一些技巧来使用它,否则在更新到数据库时它会让summernote 很痛苦,因为您需要解析文本。话虽如此,我找到了解决方法。如果有人有更好的工作解决方案,请告诉我。

      $("#mysummernote").destroy();    // This updates it for some reason.
      $("#mysummernote").summernote('code').children().prop('outerHTML');
      

      所以如果你在summernote中的文字是

      • 我的文字

      上面的jQuery应该返回

      <ul><li>my text</li></ul>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-25
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        相关资源
        最近更新 更多