2017-01-19 14 views
0

だから、削除ボタンを使用してテーブルの行を削除すると、削除プロセスを確認するためのモーダルが表示されます。ただし、削除プロセスを完了するために、IDにURL(この場合はfilenameを使用)を渡す必要があります。しかし、モーダルの "はい"ボタンで削除するために完全なURLを渡すことはできません。私はこのようなプロセスをシミュレートしようとしています。PlunkerCodeigniterブートストラップモーダル削除

ここにコードがあります。

モーダル:

<div class="modal-body text-center"> 
     <p> Are you sure you want to remove this from the list? </p><br><br> 
     <button type="submit" class="btn btn-custom-1">Yes</button> 
     <button type="button" class="btn btn-custom" data-dismiss="modal">Cancel</button> 
</div> 

[削除]ボタン:

<button type="button" class="btn btn-custom-3" data-href="<?php echo base_url() . 'admin_forms/delete_carsticker/' . $row->filename; ?>" data-toggle="modal" data-target="#delete-modal"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Delete </button> 

Javascriptを:

$('#delete-modal').on('show.bs.modal', function(e) { 
    $(this).find('.btn-custom-1').attr('href', $(e.relatedTarget).data('href')); 
}); 

答えて

0

私はIDを保存するために、単純なグローバル変数を使用すると思います。

var delete_id = ""; // or a file name 

$(document).on('click','.btn-custom-3', function(){ 
    delete_id = $(this).attr("data-href"); 
    // id also open the modal via jQuery too... 
}); 

次に、YESを実行すると、delete_idが使用されます。

$(document).on('click','.btn-custom-1', function(){ 
    if(delete_id != ""){ 
     // do something with it and come the modal but you can close it like you are doing it directly in the HTML... 
    } 
}); 
+0

YESで正しくdelete_idを使用するにはどうすればよいですか?申し訳ありませんが、私はJavaScriptの初心者です – coderszx

+0

私の例を更新しました。 delete_idはグローバルなので、すべてのハンドラはそれを使用できます。 – Paul

0

コードシニータでは、base_url()を使用する必要があります。モデル、ビュー、コントローラを持つMVCフレームワークです。

削除するには、コントローラで削除を実行する機能が必要です。

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class SomeClass extends CI_Controller { 
    public function delete($id){ 
    $this->load->model('some_model');/* load model*/ 
     if($this->some_model->delete($id)){ /*$id is ID and delete is some function in some_model (Model)*/ 
     redirect('some_success_function') 
     }else{ 
     redirect('previous_function') 
     } 
    } 
} 

HTMLに来る(図)

URLは、ここで

<?php 
if(isset($files)){ 
    foreach($files as $row){ 

     ?> 
    <a href="#" data-href="<?php echo base_url() . 'admin_forms/delete_carsticker/' . $row->filename; ?>" data-toggle="modal" data-target="#confirm-delete">Delete record #23</a><br> 

    <button class="btn btn-default" data-href="<?php echo base_url() . 'admin_forms/delete_carsticker/' . $row->filename; ?>" data-toggle="modal" data-target="#confirm-delete"> 
     Delete record #23 
    </button> 
<?php } 
} 
?> 

SomeClass以下に示されること値を削除するため$ IDを取るコントローラclass含む関数delete($id)です。コントローラコールモデルは、削除アクションを実行するためにdelete($id)を機能させます。

編集

私は、コードを更新した、モデルの一部に問題はありません。私はlocalserverであなたのコードをjavascriptで問題なく走らせました。コントローラからチェックデータが正しく送信されていることを確認してください。print_r($files)

+0

こんにちは!はい、私は現在コントローラがあり、ここにコードがあります。 'function delete_carsticker($ filename) \t { \t \t $ this-> session-> set_flashdata( 'deletesuccess'、 'あなたは正常にアカウントを削除しました'); $ this-> model_accounts-> acc_delete($ filename); リダイレクト( 'admin_forms/car_sticker'); \t} ' 主な問題は、モーダルのYESボタンが、コントローラから取られたURLを取得していないようです。私のケースでは、$ filenameです。 – coderszx

+0

コントローラからビューに適切なファイルデータが到着していることを確認します。 –

関連する問題