【问题标题】:summernote (data not saving in DB) (laravel 5.2)Summernote(数据未保存在数据库中)(laravel 5.2)
【发布时间】:2017-01-03 22:47:58
【问题描述】:

我正在使用 laravel 5.2 并在站点中集成 Summernote js。

我希望当用户填写表格并点击保存时,所有数据都存储在数据库中。

它适用于单个字段,但不适用于两个或更多。

我的看法:

    <form action="{{route('account')}}" id="acc" class="ac" method="post">
  <div class="col-lg-3"><label>Estado</label>

  @foreach($accounts as $account)
  @if($user== $account->user)
  {!! $account->estado !!}
  <textarea  style="display:none;" name="textfield4" id="textfield4"></textarea></div>

  <div class="col-lg-2 es" id="estado"></div>


 <a span class="fa fa-heartbeat"  id="sex" aria-hidden="true">
    </span></a>
</div>
  <div class="col-lg-4"></div>
</div>
<div class="row">
  <section class="col-lg-3"><div><br><label for="textfield5">I'm Good At:</label>


   <p>{!! $account->goodat !!}</p>


   <textarea  style="display:none;" name="textfield5" id="textfield5"></textarea></div>
  <div class="col-lg-2 es" id="goodat"></div>
   @endif
  @endforeach

我的 JS 在视图中:

 <script>

var edit = function() {
  $('#estado').summernote({focus: true});
   $('#goodat').summernote({focus: true});
};

var save = function() {
  var makrup = $('#estado').summernote('code');
  $('#estado').summernote('destroy');

  var makrup = $('#goodat').summernote('code');
  $('#goodat').summernote('destroy');
};

$(".acc").submit(function(e) {
     var self = this;
     e.preventDefault();


    //$('#estado').summernote('destroy');
     var estado = $('#estado').summernote('code');
     $("#textfield4").html(estado); //populate text area



      var goodat = $('#goodat').summernote('code');
     $("#textfield5").html(goodat); //populate text area
     self.submit();
     return false; 


});



</script>

我的控制器:

 se App\Account;

use Illuminate\Support\Facades\Auth;


class AccountController extends Controller
{

 public function account(Request $request)
    {

        $account = new Account();
        $account->estado = $request->input('textfield4');
        $account->goodat = $request->input('textfield5');
        $request->user()->accounts()->save($account);


        return redirect()->route('myplace',['username'=>Auth::user()->username]);
    }



}

【问题讨论】:

  • dd($request) 是一个很好的第一步,但是您应该在请求转储中显示属性和请求的内容。您也可以尝试 dd($request->input()) 以获得更清晰的结果
  • 第一个疯狂的猜测是您不应该使用 .html() 而是使用 .val() 设置 textarea 内容
  • @FrankProvost 在做 dd($request->input()) 我得到这个:array:4 [▼ "textfield4" => "" "textfield5" => "" "textfield9" = > "" "_token" => "HBJGDY760fxF6v5b2eJSOA2G0f2D0saMp3KtTZRg" ]
  • 也 .val() 没有工作。
  • 如您所见,您实际上是在发送空字符串 - 因此您的问题出在前端。如果您使用的是 chrome,请按 f12 打开开发者工具。转到控制台并输入 $('#estado').summernote('code'); - 确保这会返回您想要的输入

标签: php laravel laravel-5 laravel-5.2 summernote


【解决方案1】:

您是否验证了请求输入存在于函数中?

也许你可以检查一下:

dd($request);

【讨论】:

  • 我已将屏幕截图包含在问题中
  • 这不是一个完整的答案,这应该是一个评论
【解决方案2】:

正如聊天https://chat.stackoverflow.com/rooms/122478 中所讨论的那样,实际的问题不见了

$(document).ready(function() { ... });

和

$(".acc").submit(function(e) { ... });

表单的实际类是 .ac 而不是 .acc - 但是 id 是 acc

还必须更改编辑,因为当包装在就绪函数中时,无法从 onclick 事件中直接调用它。

在讨论中,您可以找到页面的标记 - 将其粘贴到完整的 IDE 中会显示大量错误 - 因此我将提供一些有关代码状态的更多提示。

  • 您有很多很多重复的 ID。不要将 id 设置为不需要由 id 标识的对象 - 没有必要。如果你有一个循环,你不能简单地说 id="example" - 每次循环它都会创建一个具有相同 id 的实体。 jQuery 将无法识别它们。如果您想让它们全部使用类 - 如果您想直接识别它们,请在循环中使用增量器
  • 错误使用标记:&lt;ul&gt; 标签中有 div,不应该这样做。
  • &lt;/br&gt; 使用 &lt;br&gt; 或 &lt;br/&gt; 是错误的
  • 很多未结束的标签 label B'day: label (两次打开)
  • form action="http://localhost:8000/account" id="acc" class="ac" method="post" 没有关闭 - 没有 &lt;/form&gt; 为此 - 不要忘记打电话表单::close()

试着找一个合适的编辑器来帮助你处理这些东西。我正在使用 intellij webstorm,它实际上要花一点钱(对学生免费)。

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 2020-01-02
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 2017-10-25
    • 2014-12-09
    相关资源
    最近更新 更多