php - 如何在 Bootstrap 模式中添加功能 - Laravel

标签 php javascript laravel laravel-3

我目前正在使用 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/

相关文章:

php - Symfony 多个文件总最大大小限制

php 在 500 字后将字符串插入到 html 中?包含 html 标签

javascript - 何时为 API 请求刷新过期的 Firebase3(Web) token

javascript - 如何减小 React Native iOS 应用程序的大小?

javascript - 检索夏令时期间添加的 UTC 时间

php - 如何使用 php 从后端插入时检索图像

php - 将 PHP 的对象数组导入 Javascript

ajax - Laravel 与 AJAX

laravel - Eloquent json 字段 - 获取高于/低于某个值的记录

javascript - 如何获取datatables中数据的 'id'来显示update form中的数据?