【问题标题】:Passing a portlet id to a popup modal after pressing a button - Laravel按下按钮后将 portlet id 传递给弹出模式 - Laravel
【发布时间】:2013-06-18 22:24:33
【问题描述】:

我这里有一些portlet,每个portlet 都有一个ID。我要做的是在按下 portlet 中的添加按钮后将这些 ID 传递给弹出模式。

这是 portlet 视图:

@foreach($portlets as $portlet)
<div class="box span4">
  <div class="box-header well" data-original-title>
    <h2><i class="icon-th"></i> {{$portlet->portlet_title}} </h2>
  </div>
  <div class="box-content">
    <div class="row-fluid">
      // some contents over here
    </div>
    <div class="box-icon">
      <a href="#" class="btn btn-settingLink btn-round" title="Add New Link" data-rel="tooltip"><i class="icon-plus-sign"></i></a>
    </div>
  </div>
</div>
@endforeach

请注意代码底部的“添加新链接”按钮,当我按下该按钮时,将出现一个模式。这是它的视图:

<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>

  <form method="post" action="{{ URL::to('addlink') }}" >
  <div class="modal-body">
      <div class="control-group">
      <label class="control-label" for="focusedInput">Link Title:</label>
      <div class="controls">
        <input class="input-xlarge focused" id="link_title" name="link_title" type="text">
      </div>
      </div>

      <div class="control-group">
      <label class="control-label" for="focusedInput">Add A Link:</label>
      <div class="controls">
        <input class="input-xlarge focused" id="link_url" name="link_url" placeholder="eg. http://www.example.com/" type="text">
      </div>
      </div>
  </div>

  <div class="modal-footer">
    <a href="#" class="btn" data-dismiss="modal">Close</a>
    <input type="submit" id="submit" name="submit" value="Submit" class="btn btn-primary">
  </div>
  </form>
</div>

此模式中有一个要在控制器中处理的表单。但是如何将 portlet ID 发送到此模式,以便在控制器中处理期间将其存储在数据库中?因为我希望它自动知道我想要在其中添加链接的 portlet。有什么想法吗?

如果有什么,请告诉我。

【问题讨论】:

    标签: php html laravel laravel-3


    【解决方案1】:

    您可以在单击“添加新链接”按钮时附加一个 jQuery 事件处理程序,并使用它来填充模式视图中的隐藏字段。

    即类似:

    $("a.new_link").click(function(){
        portlet_id = $(this).parent().parent().attr("id");
        $("div.modal form input.my_hidden_field").val(portlet_id)
    });
    

    &lt;form&gt; 的某处用于模态:

    <input type="hidden" name="portlet_id" class="my_hidden_field"/> 
    

    然后,您只需使用 Laravel/PHP 获取 portlet_id POST 参数即可确定使用的 portlet ID。

    编辑

    根据您提供的代码修改处理程序:

    $('.btn-settingLink').click(function(e){
        e.preventDefault();
        $('#linkSettings').m‌​odal('show');
        // get the portlet_id and modify the midden field
        portlet_id = $(this).parent().parent().attr("id");
        $("div.modal form input.my_hidden_field").val(portlet_id)
    });
    

    【讨论】:

    • 很抱歉,我应该把那个处理程序放在哪里?我在这里有一个与上述模态$('.btn-settingLink').click(function(e){e.preventDefault();$('#linkSettings').modal('show');}); 相关的javascript,我必须把它放在这里还是必须做一个新的? 这里缺乏js知识
    • 您可以将处理程序粘贴在$(document).ready() 中的任何位置。但是,既然您已经设置了一个处理程序,那么您应该将我在 $("#linkSettings').modal('show') 之后发布的 JS 的第 2 行和第 3 行放入您的代码中。
    • 我已编辑我的问题以向您展示一个示例。我不确定您将 portlet ID 放在哪里,因此您应该根据哪个元素具有正确的 ID 来编辑 parent() 函数调用的数量。
    • 我不明白。当我在模式中使用$portletId = $portlet-&gt;id; 时,按钮应该如何知道要传递哪个 ID?我是否必须在模态框的某处创建一个新属性,并使用parent() 对其进行跟踪?
    • 我建议您在 HTML 中为每个 portlet 创建一个id 属性。然后当按下按钮时,您应该通过.parent() 获得该portlet 的ID。然后,您的脚本可以通过 POST 字段将 ID 获取到“addlink”。
    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 2021-11-03
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多