0

ここには、それぞれの ID を持つポートレットがいくつかあります。私がやろうとしているのは、ポートレットの [追加] ボタンを押した後に、これらの ID をポップアップ モーダルに渡すことです。

ポートレット ビューは次のとおりです。

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

このモーダルには、コントローラーで処理されるフォームがあります。しかし、ポートレット ID をこのモーダルに送信して、コントローラーでの処理中にデータベースに保管できるようにするにはどうすればよいでしょうか? リンクを追加したいポートレットを自動的に認識させたいためです。何か案が?

何かあれば教えてください。

4

1 に答える 1

1

jQuery イベント ハンドラーを [新しいリンクの追加] ボタンのクリックにアタッチし、それを使用してモーダル ビューの非表示フィールドに入力することができます。

つまり、次のようなものです:

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

そして<form>、モーダルのどこかに:

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

portlet_idあとは、 Laravel/PHP で POST パラメータを取得するだけで、使用されたポートレット 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)
});
于 2013-06-21T17:50:22.007 に答える