0

ビュー/モーダル フォルダー内にあるブートストラップ モーダル mngCat を作成しました。これは、新しいカテゴリを追加するとき、または既存のカテゴリを編集するときに、両方の場合に呼び出します。

<div id="mngCat" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="addNewLabel" aria-hidden="true">
    <div class="modal-header">
        <h3 id="addNewLabel"><?php echo empty($cat->category_id) ? 'Add category' : 'Edit category ' . $cat->category; ?></h3>
    </div><!-- end of .modal-header -->
    <div class="modal-body">
    <?php echo form_open('admin/category/manage') . PHP_EOL; ?>
        <p>
        <label for="category_name">Category name:</label>
    <input type="text" name="category_name" value="<?php echo set_value('category_name', $cat->category); ?>" />
        </p>
        <p>
        <label for="parent">Set Parent category:</label>
        <select>
        <option>-- None --</option>
        <?php if(count($all_categories)): foreach($all_categories as $cat): ?>
        <option value="<?php echo $cat->category_id; ?>"><?php echo $cat->category; ?></option>
        <?php endforeach; endif; ?>
        </select>
        </p>
        <?php echo form_close() . PHP_EOL; ?>
    </div>
    <div class="modal-footer">
        <button class="btn btn-primary" type="submit">Ok</button>
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    </div>
</div><!-- end of #mngCat modal -->

カテゴリを追加したいときは、この ci アンカーを押します

$attr = array(
    'class' => 'btn btn-primary',
    'data-toggle' => 'modal',
    'data-target' => '#mngCat'
    );
echo anchor('#mngCat','<i class="icon-plus icon-white"></i> Add Category', $attr);

カテゴリを編集したいときは、これを押します:

<?php echo anchor('#mngCat' . $cat->category_id, $cat->category, $attr); //not passing any data  ?>

したがって、[カテゴリの追加] をクリックすると、[カテゴリの追加] というタイトルのモーダルが表示されますが、カテゴリ名 (2 番目のアンカー) をクリックしてもモーダルは表示されません。私がやりたいのは、タイトル編集カテゴリでモーダルを表示し、編集を行えるようにカテゴリデータの形式で表示することです。

4

1 に答える 1

1

ここでいくつかのことを理解する必要があります:

  1. ブートストラップモーダルはすでにビューにロードされているか、すでにレンダリングされています-非表示になっています(ソースを表示すると、そこに表示されます)。

  2. どれだけクリックしても、何をしても、常に同じデータが表示されます

  3. 後処理を行わない限り、リンクを介してデータを解析してモーダルをブートストラップすることはできません。

あなたがしなければならないこと

  1. 両方のリンクで jquery create onclikc イベントを使用する

  2. あなたの属性として追加data-category_id=$cat->category_idします(追加する場合はnullを追加します)

  3. イベントがトリガーされたら、モーダルを作成します

    var category_modal = $('<div id="mngCat" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="addNewLabel" aria-hidden="true"></div>');

  4. ajax経由でデータをモーダルボディにロードする

    .post('somecontroler/getcatgoryform/',{category_id:$(this).data('category-id')}
              function(response){
               category_modal.html(response);
               category_modal.modal('show');
    
    }
    

    }

5) codigniters somecontroler/getcatgoryform/ で処理を行い、モーダル ヘッダー (モーダル コンテナーなし) で始まるビューをロードします。

 <div class="modal-header"><h3 id="addNewLabel"><?php echo empty($cat->category_id) ? 'Add category' : 'Edit category ' . $cat->category; ?></h3></div><!-- end of .modal-header -->
<div class="modal-body">
<?php echo form_open('admin/category/manage') . PHP_EOL; ?>
    <p>
    <label for="category_name">Category name:</label>
<input type="text" name="category_name" value="<?php echo set_value('category_name', $cat->category); ?>" />
    </p>
    <p>
    <label for="parent">Set Parent category:</label>
    <select>
    <option>-- None --</option>
    <?php if(count($all_categories)): foreach($all_categories as $cat): ?>
    <option value="<?php echo $cat->category_id; ?>"><?php echo $cat->category; ?></option>
    <?php endforeach; endif; ?>
    </select>
    </p>
    <?php echo form_close() . PHP_EOL; ?>
</div>
<div class="modal-footer">
    <button class="btn btn-primary" type="submit">Add</button>
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</div>

最後に、わからない場合は、グーグルload bootstrp modal via ajax

于 2013-06-04T10:28:43.373 に答える