Hello everyone I use the Modal as a delete prompt on my CI script but its not working maybe there is an error on it. Anyone can check the codes for me.
My codes on delete button:
<a onclick="confirm_modal(<?php echo base_url('threads/deletereplytopic/'.$toprep['id']) ?>)" style="cursor:pointer;" data-toggle="modal" data-target="#deleteReplyTopic"><i class="fa fa-trash-o" aria-hidden="true"></i></a>
And my Codes in Modal an Js:
<!-- Delete Topic Reply Modal-->
<div class="modal fade" id="deleteReplyTopic" style="display: none;" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title"><?php echo lang_key('confirm_delete'); ?></h6>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?php echo lang_key('confirm_delete_text'); ?>
</div>
<div class="modal-footer">
<a class="btn btn-danger" id="delete_topic_reply" href=""><?php echo lang_key('delete'); ?></a>
<button type="button" class="btn btn-info" data-dismiss="modal" id="delete_cancel_link"><?php echo lang_key('cancel'); ?></button>
</div>
</div>
</div>
</div>
and the Js:
<!-- Delete Topic JS -->
<script>
function confirm_modal(delete_url)
{
jQuery('#deleteReplyTopic').modal('show', {backdrop: 'static',keyboard :false});
jQuery("#deleteReplyTopic .grt").text(title);
document.getElementById('delete_topic_reply').setAttribute("href" , delete_url );
document.getElementById('delete_topic_reply').focus();
}
</script>
And here is my Controller codes:
public function deletereplytopic($id='') {
$deletereply = array(
'id' => $id,
'status' => 0
);
$deltop = 'confirmdelete';
$this->session->set_flashdata('deltop', $deltop);
$this->topic_model->deleteReplyTopic($deletereply);
}
This controller codes is working if I directly delete the data but if I use modal is not working..I hope someone can help me..
You are missing quotes inside e.g. confirm_modal('something')
<a onclick="confirm_modal('<?php echo base_url('threads/deletereplytopic/'.$toprep['id']) ?>')" style="cursor:pointer;" data-toggle="modal" data-target="#deleteReplyTopic"><i class="fa fa-trash-o" aria-hidden="true"></i></a>
remove this line and it will work
jQuery("#deleteReplyTopic .grt").text(title);
its not working because title is not passes to the function
edit: use the following for cleaner code
<a data-delurl="<?php echo base_url('threads/deletereplytopic/'.$toprep['id']) ?>" style="cursor:pointer;" data-toggle="modal" data-target="#deleteReplyTopic"><i class="fa fa-trash-o open-dialog" aria-hidden="true"></i></a>
$(document).on("click", ".open-dialog", function () {
$("a").attr("href", $(this).data('delurl'));
});
you can also use the one bellow but without argument passing
$('#deleteReplyTopic').on('shown.bs.modal', function () {
//do stuff when modal opens
});