【发布时间】: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