функция щелчка не работает должным образом с привязкой codeigniter () - PullRequest
0 голосов
/ 30 августа 2018

Я использую Codeigniter 2.2. Я пытаюсь построить таблицу, используя библиотеку классов таблицы HTML. Он также содержит кнопку редактирования. Вот мой файл просмотра:

foreach($invoices as $row) {
    $data = array(
        'name' => 'btn btn-default btn-sm dropdown-toggle',
        'type' => 'button',
        'content' => '',
        'class' => 'btn btn-default btn-sm dropdown-toggle',
        'class' => 'entypo-trash',
    );

    $edit_url = base_url().
    'index.php?modal/popup/modal_edit_invoice/'.$row['invoice_id'];

    $onclick_edit = array('onclick' => "showAjaxModal('{$url}')");
    $links = form_button($data, $js);

    $links. = anchor('#', 'edit', $onclick_edit); //here is the issue, on click popup try load , but in a next second page redirect to the index page 

    $this->table->add_row(
        $this->crud_model->get_type_name_by_id('student', $row['student_id']), $row['title'], $row['description'], $row['amount'], $row['amount_paid'], $row['due'], $row['status'], $links
    );

}
echo $this->table->generate();

Все работает нормально. Но когда я пытаюсь нажать кнопку «Изменить», у меня появляется всплывающее окно с моделью, но на следующей второй странице происходит перенаправление на страницу индекса. Вот файл JavaScript:

function showAjaxModal(url) {
    // SHOWING AJAX PRELOADER IMAGE
    jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');

    // LOADING THE AJAX MODAL
    jQuery('#modal_ajax').modal('show', {
        backdrop: 'true'
    });

    // SHOW AJAX RESPONSE ON REQUEST SUCCESS
    $.ajax({
        url: url,
        success: function(response) {
            jQuery('#modal_ajax .modal-body').html(response);

        }
    });

}

Он отлично работает с тегом привязки, но я не могу использовать его в классе таблицы HTML. Пожалуйста, помогите мне .. спасибо заранее

1 Ответ

0 голосов
/ 30 августа 2018

Просто измените эту строку

$onclick_edit = array('onclick' => "showAjaxModal('{$url}')");

к этому

$onclick_edit = array('onclick' => "return showAjaxModal('{$url}')");

И измените свою функцию js следующим образом

function showAjaxModal(url) {
    // SHOWING AJAX PRELOADER IMAGE
    jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');

    // LOADING THE AJAX MODAL
    jQuery('#modal_ajax').modal('show', {
        backdrop: 'true'
    });

    // SHOW AJAX RESPONSE ON REQUEST SUCCESS
    $.ajax({
        url: url,
        success: function(response) {
            jQuery('#modal_ajax .modal-body').html(response);

        }
    });

    return false; //this will stop <a> tag behavior
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...