如何使用Ajax调用href函数

时间:2018-08-16 01:52:10

标签: javascript json ajax codeigniter

我是新来的,我正在使用ajax和我网站上的notify.js。 在有轻微问题的地方,这是我无法使用带ajax的href调用我的函数,并且notify.js不会弹出并删除文件 让我告诉你我的代码

观看次数:

<tbody>
<?php foreach ($rows as $row) { ?>
    <tr>
        <td><?php echo $row ->description ?></td>
        <td><?php echo $row->updated_at ?></td>
        <td><a href="<?php echo base_url().'admin/edittipe/'.$row->id ?>">Edit</a></td>
        <td><a id="aDeleteOrderType" onclick="type_delete()" href="#.<?php echo $row->id ?>">Delete</a></td>
    </tr>
<?php } ?> 

管理员页脚

<script>
$("#aDeleteOrderType").click(function(e){
    e.preventDefault();
    $.ajax({
      url: '<?php echo base_url().'admin/type_delete' ?>',
      type: 'post',
      data: {
      },
      success: function(msg)
      {
          if (msg == 'valid')
        {
            $.notify('Data Has Been Deleted', 'error')
        }
      }
}); 

});

控制器

public function type_delete($id)
    {
        $is_logged_in1 = $this->session->userdata('is_logged_in');
        $type = $this->session->userdata('type');
        if(!isset($is_logged_in1) || $is_logged_in1 != true)
    {
        $data['error'] = '';
        $this->load->view('login-1', $data);
    }
    else                     
    {
        $this->load->model('listtipeorder_model');
        $this->listtipeorder_model->delete_list_type($id);
        echo 'valid';
    }
    }

请帮助我:(

P.S抱歉,我的英语不好。

1 个答案:

答案 0 :(得分:0)

HTML:

通知data-id,并尽快通知我们。

<td><a id="aDeleteOrderType" href="#" data-id="<?php echo $row->id ?>">Delete</a></td>

JS:

由于您没有使用get或post来获取php函数中的$id var,而是将其作为url参数传递,因此您必须通过jquery进行相同的操作。

<script>
    $(document).ready(function () {
        $("#aDeleteOrderType").click(function (e) {
            var id = $(this).attr('data-id');
            e.preventDefault();
            $.ajax({
                url: '<?php echo base_url() . '/admin/type_delete/'; ?>' + id,
                type: 'POST',
                success: function (msg) {
                    if (msg == 'valid') {
                        // success would be better suited than 'error'
                        // might confuse some
                        $.notify('Item deleted', 'success');
                    } else {
                        $.notify('Error occurred', 'error');
                    }
                }
            });
        });
    });
</script>

PHP:

您的PHP没什么问题,但是可以改进。

function type_delete($id = null) {
    $is_logged_in1 = $this->session->userdata('is_logged_in');
    //$type = $this->session->userdata('type');
    // isset not required with userdata as will return null if no data
    if ($is_logged_in1 != true || is_null($id)) {
        echo 'error';
        // don't load a view
        //$data['error'] = '';
        //$this->load->view('login-1', $data);
    } else {
        $this->load->model('listtipeorder_model');
        $this->listtipeorder_model->delete_list_type($id);
        echo 'valid';
    }
    exit;
}