我目前正在使用 Laravel 框架开发一个系统。不过,我对 MVC 架构还不是很熟悉。
当我开发系统时,我遇到了一个与此引导模式相关的问题,其中有一个表单。我想在其中添加函数,以便可以将其提交到数据库。
我已经遵循了几个教程,但没有找到解决方案,因为它们都使用页面而不是模态。
所以,这是模式的 HTML:
<div class="modal hide fade" id="linkSettings">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Add New Link</h3>
</div>
<div class="modal-body">
<div class="control-group">
<label class="control-label" for="focusedInput">Add A Link:</label>
<div class="controls">
<textarea class="autogrow"></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<a href="#" class="btn btn-primary">Save changes</a>
</div>
</div>
这是上述模式的 Javascript:
$('.btn-settingLink').click(function(e){
e.preventDefault();
$('#linkSettings').modal('show');
});
现在,我如何将该函数放入 Controller 中,以便每当用户按下保存更改按钮时,它都会将该值存储在<textarea>
中进入数据库?与 Javascript 代码有什么关系吗?我需要使用 {{Form::open('main/addLink','POST')}}
在表单中将其值传递给 Controller 和模型?
基本上,我想要的只是通过使用模态来拥有 CRUD 功能。
最佳答案
首先您需要创建一个带有路线的表单....
<form method="post" action="{{URL::to('Link/addlink')}}>
或者像上面展示的那样,使用 Blade {{Form}} ...无论哪种方式
那么你的textarea需要一个id和名称
<textarea id="mytext" name="mytext"></textarea>
所以你的 HTML 就变成了...
<form method="post" action="{{URL::to('Link/addlink')}}>
<div class="modal-body">
<div class="control-group">
<label class="control-label" for="focusedInput">Add A Link:</label>
<div class="controls">
<textarea id="mytext" name="mytext" class="autogrow"></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<input type="submit" id="submit" name="submit" class="btn btn-primary">Save changes</input>
</div>
</form>
然后在您的链接 Controller 中...或者您实际发送此表单的任何地方...不知道您的 Controller 的名称:)
public function addlink(){
$input = Input::all();
//whatever validation you wanna do, with error handling etc...not gonna provide that, thats up to you
$yourmodel = New Model;
$yourmodel->text = $input['mytext'];
$yourmodel->save();
Return Redirect::back();
}
编辑(适用于 Ajax)
将此脚本添加到页面底部...
<script>
$(document).ready(function(){
$('input#submit').click(function(e){
e.preventDefault();
var text = $('#mytext').val();
var url = 'your url' //we were using Link/addlink in the other example
$.ajax({
type: "POST",
url: url,
data: { mytext: text },
success: function(){
//Probably add the code to close your modal box here if successful
$('#linkSettings').hide();
},
});
});
});
</script>
PS 完全未经测试......您将需要一些调整,加上您的 Controller 具有重定向的事实可能会使其无法工作,因为这只是期望回显的 Json 字符串
但这些都是具体的细节,我认为这是你继续自己继续下去的基础......
关于php - 如何在 Bootstrap 模式中添加功能 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004595/