Скрыть имя контроллера из URL в codeigniter, используя маршруты - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть такой URL-адрес:

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

Я хочу, чтобы product_details был скрыт от URL-адреса, для этого я использовал следующие правила маршрутизации:

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

, затем URL-адрес, который отображается вбраузер

http://example.com/product/8

, но проблема в том, что в том же контроллере я вызвал метод других контроллеров, например.public function addToCart(){ } Теперь, когда я вызываю http://example.com/product/addToCart, он не будет вызываться, пока я не удалю определенный выше маршрут.Пожалуйста, помогите решить мою проблему.

1 Ответ

0 голосов
/ 28 февраля 2019

для этого нужен запрос ajax.вам нужно удалить теги <form>.добавьте идентификатор на ваши кнопки следующим образом: <button class="approve" type="submit">Approve</button>

, затем для вашего Ajax-запроса измените URL в зависимости от вашего маршрута:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...