使用路由从Codeigniter中的URL隐藏控制器名称

时间:2019-02-28 12:22:04

标签: codeigniter codeigniter-3

我有这样的网址:

http://example.com/product/product_details/8

我希望使用该路由规则将url中的product_details隐藏起来:

$route['default_controller'] = 'product';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['product/(:any)'] =  'product/product_details/$1';

然后浏览器中显示的网址是

  

http://example.com/product/8

但是问题是在同一个控制器中,我调用了其他控制器方法,例如。现在public function addToCart(){ },当我呼叫http://example.com/product/addToCart时,直到删除上面定义的路由,它才会被调用。请帮助解决我的问题。

1 个答案:

答案 0 :(得分:0)

您需要对此进行ajax查询。您需要删除<form>标签。在您的按钮上添加ID,例如:<button class="approve" type="submit">Approve</button>

然后针对您的Ajax查询,根据您的路线更改网址:

<script type="text/javascript">
$(document).ready(function(){
    $(".approve").click(function(){
        var $row = $(this).closest('tr');
        var $transactionCode = $row.find(".transactionCodeData").text();

        $.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>controller/method",
            data: { transactionKey: $transactionCode },
            success: function(data){
                location.reload(); //to refresh the browser
            }
        });
    });
});
</script>